Unity OnLevelWasLoaded 未被调用
Unity OnLevelWasLoaded not being called
我有一个名为 StartGame 的脚本,它应该在选择不同的游戏模式时执行不同的操作。 Unity 的 API 和论坛建议使用 OnLevelWasLoaded,但它没有被调用。事实上,当我将鼠标悬停在 Visual Studio 中时,它告诉我方法是 "StartGame.OnLevelWasLoaded"。我很确定这意味着它不会覆盖该方法。有没有其他人有这个问题?我也在使用 Unity 5.3。
你确定你的游戏对象在加载新场景后仍然存在吗?
通常,加载另一个场景时,所有游戏对象都会从场景中删除。
您可以通过加载场景添加剂(将新场景的内容添加到当前场景的内容)来防止这种情况
SceneManager.LoadScene("your scene name", LoadSceneMode.Additive);
或防止删除您的特定游戏对象
GameObject.DontDestroyOnLoad(yourStartGameScriptHolder); // where yourStartGameScriptHolder is the GameObject(!), not the script reference
我有一个名为 StartGame 的脚本,它应该在选择不同的游戏模式时执行不同的操作。 Unity 的 API 和论坛建议使用 OnLevelWasLoaded,但它没有被调用。事实上,当我将鼠标悬停在 Visual Studio 中时,它告诉我方法是 "StartGame.OnLevelWasLoaded"。我很确定这意味着它不会覆盖该方法。有没有其他人有这个问题?我也在使用 Unity 5.3。
你确定你的游戏对象在加载新场景后仍然存在吗? 通常,加载另一个场景时,所有游戏对象都会从场景中删除。
您可以通过加载场景添加剂(将新场景的内容添加到当前场景的内容)来防止这种情况
SceneManager.LoadScene("your scene name", LoadSceneMode.Additive);
或防止删除您的特定游戏对象
GameObject.DontDestroyOnLoad(yourStartGameScriptHolder); // where yourStartGameScriptHolder is the GameObject(!), not the script reference