我想使用单个脚本来控制一个场景的所有元素。我们称之为“Director”脚本,绑定到EventSystem。
我知道我可以通过名称或标签获取GameObject,然后操纵变换等组件。因此,我想知道我是否可以在这个“Director”脚本中定义OnTrigerCollider2D()而不将任何脚本绑定到Collider2D GameObject,就像我定义转换的值一样?如果可能,怎么做?
根据一些朋友的说法,有必要将至少一个基本脚本绑定到Collider2D,以授权“Director”脚本访问Collider2D事件,无法绕过此限制?
答案 0 :(得分:1)
<强> MonoBehaviour.OnTriggerEnter2D(Collider2D)强>
当另一个对象进入连接到这个的触发器对撞机时发送 对象(仅限2D物理)。
有关其他对撞机的更多信息,请参阅 在调用期间传递了Collider2D参数。
为了触发事件,必须将触发器对撞机连接到与您的行为相同的对象。在对象上使用一个小脚本,带有一个引用来调用“Director”上的方法是我见过这种方法最常见的方法。据我所知,对象不可能“订阅”其他对象触发的碰撞事件。
海报here表明一个解决方案可能是创建一个“Director”检查的碰撞管理器,但实际有碰撞事件的对象需要通知碰撞管理器,所以使用该解决方案你就是只需添加一个步骤。根据您实际想要对碰撞事件做什么,它可能对您有意义。