目前,当我尝试检测某个对象是否已被鼠标单击/交互时,我在该GameObject上创建一个脚本,然后定义void OnMouseDown()
并在其中应用功能。如果我想在另一个 附加到GameObject的脚本中触发一个函数,我会通过GetComponent<>()
引用来调用它。
有没有办法从另一个GameObject上的脚本向OnMouseDown事件添加回调?可能与分配和调用委托/事件的方式相同?例如:gameObjectReference.GetComponent<BoxCollider>().onmousedownevent += MyFunction;
这样它会在鼠标按下时自动调用此函数吗?
注意:我知道您可以使用光线投射来实现类似的功能,但我的问题是将回调附加到现有的Unity事件。
答案 0 :(得分:1)
1)我理解你的意思
pseudocode:
gameObjectReference.GetComponent<BoxCollider>().onmousedownevent += MyFunction
并且没有办法做到这一点。
2)请理解:实现您的目标(优雅)是非常容易。在脚本中添加UnityEvent&#34; b&#34;,在OnMouseDown中调用它。拖动你想要的任何东西。对于阅读Unity新手的人来说,请务必尝试UnityEvent
,因为它经常被使用
3)AI提到你可以通过使用OnPointerDown(PointerEventData eventData)
系统来做你想做的事情,但是这只是强调你不能做你所要求的事情,做什么它与OnMouseDown。
抱歉这个严峻的消息。