【发布时间】:2020-08-19 16:31:21
【问题描述】:
我有一个附加到 UI 游戏对象的脚本,该脚本查找并获取对画布根游戏对象的引用。现在我会每隔update() 刷新一次引用,以防游戏对象移动到层次结构中的其他位置并且画布根更改。
但是我发现我的脚本在每个 update() 中都运行 GetComponentInParent<Canvas>().rootCanvas 时性能很重,尤其是当对象位于具有 1000 多个游戏对象的层次结构的底部时。所以我希望我的脚本只在 start() 和对象层次结构发生变化时找到根画布。
我找到了https://docs.unity3d.com/ScriptReference/EditorApplication-hierarchyChanged.html,但它只是编辑器,构建后不会跟随。有什么办法可以做类似于 OnHierarchyChanged() 的事情吗?也不能使用循环检查层次结构的当前状态。
【问题讨论】: