gpt4 book ai didi

c# - Unity 事件系统如何知道我是否实现了 IDragHandler

转载 作者:行者123 更新时间:2023-11-30 20:28:31 27 4
gpt4 key购买 nike

我正在查看 UnityEngine.UI 源代码。我试图了解事件系统如何知道哪些类正在实现 IDragHandler 接口(interface)或任何其他事件系统接口(interface)。

我到了一个有只读对象的地方 bool> 或类似的东西。但是我没有找到填充数据的位置。

有人知道 evetsystem 是如何知道一个类是否正在实现事件系统的接口(interface)吗?我没有找到接口(interface)注册自己的地方。

最佳答案

GetComponent 函数就是答案。如果它返回null,它就会实现接口(interface)。如果它返回 null,则接口(interface)未实现。

例如:

界面:

public interface IDrag { }

实现它的脚本:

public class MyScript : MonoBehaviour, IDrag{ }

要检查 MyScript 脚本是否实现了 IDrag 接口(interface),请使用 GetComponent 函数。

IDrag idrag = gameObject.GetComponent<IDrag>();
if (idrag != null)
Debug.Log("Implemeted IDrag");
else
Debug.Log("DID NOT Implement IDrag");

关于c# - Unity 事件系统如何知道我是否实现了 IDragHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47225051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com