Unity OnLevelWasLoaded未被调用

时间:2016-01-22 02:56:21

标签: c# unity3d unity5

我有一个名为StartGame的脚本,可以在选择不同的游戏模式时执行不同的操作。 Unity的API和论坛建议使用OnLevelWasLoaded,但它不会被调用。事实上,当我在Visual Studio中将鼠标悬停在它上面时,它告诉我方法是" StartGame.OnLevelWasLoaded"。我很确定这意味着它不会覆盖该方法。有没有其他人有这个问题?我也使用Unity 5.3。

1 个答案:

答案 0 :(得分:1)

在加载新场景后,你确定你的GameObject仍然存在吗? 通常,在加载另一个场景时,所有GameObject都会从场景中删除。

您可以通过加载场景添加剂(将新场景的内容添加到当前场景的内容中)来防止这种情况。

SceneManager.LoadScene("your scene name", LoadSceneMode.Additive);

或阻止删除特定的GameObject

GameObject.DontDestroyOnLoad(yourStartGameScriptHolder); // where yourStartGameScriptHolder is the GameObject(!), not the script reference