如何通知o组件或子GameObject已添加到GameObject中

Hei*_*bug 6 c# notifications unity-game-engine

无论如何,当a Component添加到GameObject(甚至是子GameObject)时,我可以得到通知(可能通过某些方法/事件引发)?

我希望在编辑器中发生某些事件时收到通知(可能在某些编辑器脚本中),例如:

  • A Component附加GameObject实例
  • A Component已被附加Prefab
  • 一个GameObject已经成为孩子另一个GameObjectistance

这可能吗?如果是的话怎么样?


编辑

我找到了一个代表父母关注的问题:EditorApplication.hierarchyWindowChanged

因此,它被称为doc:

每当场景层次结构发生变化时调用.

这是transform.parent已更改,gameObject.name,创建新游戏对象等.

我仍然不明白是否有一种方便的方法可以理解层次结构中哪些对象已被更改.

OnR*_*lve -1

没有“内置”方法可以方便地执行此操作。但是,您可以通过几种方式来模拟它。

  • 利用Awake()组件中的函数来调用它的父组件gameObjectSendMessage对此非常干净)[注意:这仅在您添加新组件实例时才有效]

或者

  • 创建一个变量来跟踪它的父级。在该Update()方法中,检查当前父级以触发向新父级发送 SendMessage。

    这里只是 2 个适合具体情况的示例——还有更多。归根结底,(到目前为止)还没有构建任何东西,但从解决方法的角度来看肯定是可行的。