我正在查看UnityEngine.UI源代码。我试图了解事件系统如何知道哪些类正在实现IDragHandler接口或任何其他事件系统接口。
我到达了一个只读的objectbool>或类似的地方。但是我没有找到数据所在的地方。
有人知道evetsystem如何知道一个类是否正在从事件系统实现接口吗?我找不到接口注册自己的地方。
最佳答案
GetComponent
函数就是答案。如果不返回interface
,它将实现null
。如果返回null,则表示该接口未实现。
例如:
界面:
public interface IDrag { }
实现它的脚本:
public class MyScript : MonoBehaviour, IDrag{ }
要检查
MyScript
脚本是否实现IDrag
接口,请使用GetComponent
函数。IDrag idrag = gameObject.GetComponent<IDrag>();
if (idrag != null)
Debug.Log("Implemeted IDrag");
else
Debug.Log("DID NOT Implement IDrag");