【发布时间】:2019-06-28 17:22:48
【问题描述】:
到目前为止,我一直在编写代码,认为monobehaviour 中的函数将按此顺序执行:
OnEnable > 开始 > 更新 > OnDisable
问题是我认为这个顺序是绝对的,这意味着在一个函数没有完全完成之前,下一个函数不可能开始执行。
- 所以第一个问题是:这是真的吗?
update会在start结束之前执行吗?
然后我的问题出现在不同monobehaviour 类之间的同步。
我有一个类在其start 函数中创建一些对象(基本上是一个菜单)。然后在另一个类中,我有一个类似的代码,但它也 依赖 由第一个类创建的对象已经存在。我收到一个错误,因为该对象尚未找到。
NullReferenceException:对象引用未设置为对象 ShopHandler.Start () 的实例(在 Assets/Scripts/Shops/ShopHandler.cs:60)
所以现在我被困住了。因此,我的第二个问题是,
- 我如何在我的不同类依赖于其他类时同步它们?
最后,还要问一个混合了这两者的问题:
-
update函数是否会在这些类中的任何一个中执行,而它们以某种方式“等待”它们的初始化部分,无论是在start函数、OnEnable函数还是其他什么中?
因为当然,update 函数依赖于已经初始化的对象,这可能会导致新的问题。
提前致谢
【问题讨论】:
-
请在您的问题中包含错误和异常消息作为文本,而不是图像。将它们作为图片包含在内,使得通过搜索有类似问题的人更难找到问题,也使使用屏幕阅读器的人更难访问问题。
-
另外,建议用多个部分分隔问题into separate posts.
标签: c# unity3d initialization