【发布时间】:2018-07-12 20:22:20
【问题描述】:
当使用NetworkManager.ServerChangeScene() 从阶段 1 切换到阶段 2 时,玩家会被摧毁并且在阶段 2 加载时不存在。没有错误,场景切换成功。
这是什么原因造成的?
这是我改变场景的代码:
[ServerCallback]
public void LoadOnline (string sceneName) {
NetworkManager.singleton.ServerChangeScene (sceneName);
}
【问题讨论】:
-
您是否需要使用
DontDestroyOnLoad? -
您知道,似乎不太可能存在这样一个基本错误。 “玩家”是指游戏中的游戏对象吗?在SceneA中吗?如果是这样,当您加载 SceneB 时,该游戏对象将被销毁。加载 SceneB 时,SceneA 中的所有内容都将被销毁。我假设“阶段 1”是指 Unity
Scene。 (如果你的意思是别的 - 对不起!) -
您是否可能需要预加载场景? (提到它的无关文章stackoverflow.com/a/35524924/294884)
-
其实这是一篇关于stackoverflow.com/a/35465978/294884的文章
-
是的,在 Unity 中这很奇怪......从某种意义上说,您可能会争辩说 DEFAULT 应该是“不要破坏”。你为什么要破坏东西?如果您确实想破坏某些东西(例如,“一条路正在改变为另一条路”),当然,您会手动告诉它破坏有问题的第一条路。无论如何............就是这样! :) 希望它以某种方式有所帮助