我在Unity中有一个事件管理器,可以处理从场景组件发送的事件。这些类都是从标准Unity组件中抽象出来的。我可以通过按钮成功触发事件,并使该按钮的父级监听该事件(您在下面看到的onEventReceived
)。
使用VSCode的Unity Debugger扩展,我可以记录发送者。如果我输入sender.gameObject
,并且它返回对发件人所附的GameObject的正确引用。但是,我无法在sender.gameObject
函数内部引用OnEventReceived
-因为我想它的类型为ISceneComponent
。如何获得对点击发件人的游戏对象的引用?
答案 0 :(得分:1)
我自己以前曾遇到过你的问题。
修复非常简单。
假设您创建了接口ISceneComponent,请将gameObject字段添加到您的接口中
public interface ISceneComponent
{
GameObject gameObject { get; set; }
// ...
}
如果实现ISceneComponent的对象也是单一行为,那么gameObject将自动填充,您可以轻松引用它。