gpt4 book ai didi

c# - GameObject 被哪个脚本销毁

转载 作者:行者123 更新时间:2023-12-04 11:23:56 26 4
gpt4 key购买 nike

我试图找出我的游戏对象正在被我的游戏中的哪个脚本破坏。
到目前为止,我尝试打印堆栈,但那里没有提到销毁游戏对象的脚本的详细信息
代码:Debug.Log(UnityEngine.StackTraceUtility.ExtractStackTrace())

最佳答案

Destroy 实际上并没有立即“销毁”它传递的对象,而是将对象添加到对象列表中,以便 Unity 在帧结束时销毁。这是当 OnDestroy被调用,这就是为什么你不会看到堆栈的原因 Destroy被调用(如果你真的会看到一个堆栈,我很确定 native 代码会调用它)。

所以这应该是它的结束......对吧?

嗯,不完全是。如果您查看 Order of Execution for Event Functions然后在 OnDestroy 之前调用了一个事件函数, OnDisable .

幸运的是,这个函数不仅被调用得更早,而且(至少当我上次在 Unity 2018.4 的编辑器播放模式下测试时)OnDisable实际上是由 Destroy 调用的,所以如果你在那里得到堆栈,你应该,希望能够确定谁已经破坏了你的单一行为。

关于c# - GameObject 被哪个脚本销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59517480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com