我刚刚开始在Unity5中使用新的统一网络系统 . 今天我发现了一件我无法理解的奇怪的事情 .
我制作了2个新脚本并将“Debug.Log”添加到Start()和Update()两个中,然后禁用游戏对象,添加2个脚本作为组件,一旦游戏启动,我启用游戏对象,检查控制台窗口,一切看起来正常 .
然后,如果我添加NetworkManager游戏对象并将“NetworkIdentity”添加到以前的日志记录游戏对象,启动游戏,托管游戏,日志游戏对象将自动启用,然后您将在控制台窗口看到这一点 .
似乎Start()和Update()函数不符合它们应该是什么,我是否误解了任何有关Unity Networking的内容?
感谢提醒,所以我在测试中添加了“Awake()”,然后发生了更多奇怪的事情 . 具有“NetworkIdentity”的游戏对象将在StartHost()之前调用其“Awake”以在编辑器模式下启用游戏对象,但是一旦进行构建,将在StartHost()之后调用“Awake” . 这让我更加困惑 . :(
1 回答
每个网络身份游戏对象在场景开始时变为禁用,然后由场景管理器自动激活为统一文档:
因此,根据我的理解,对象是逐个启用的,因此代码中的日志顺序并不奇怪(每个对象一个接一个地启用,并且它们的脚本以相同的顺序开始执行) .