试图完全重新加载场景

时间:2019-05-27 21:46:16

标签: c# unity3d

我制作了一个代表游戏主菜单的场景。在此菜单中,有一个供单个玩家使用的选项,当我按下它时,它将打开一个新的“级别1”场景。
另外,还有一个暂停菜单,允许玩家退出游戏并返回主菜单。
但是,在返回主菜单后,当我尝试使用SceneManager.LoadScene(“ level 1”)进入1级场景时,会出现很多问题。这意味着很多游戏对象的行为都不尽如人意。

我不知道为什么会这样,如果有人可以帮助我解决问题,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用SceneManager.LoadScene("level 1", LoadSceneMode.Single);清除旧场景,而仅加载新场景,这将使您获得清晰的场景,并且不会有任何问题。

如果有需要持续到新场景的脚本,则可以在脚本中使用DontDestroyOnLoad(this);,它们将移至新场景。问题是您必须确保未破坏的脚本不要尝试访问破坏的对象。从您的评论看来,您有一个没有被破坏的玩家移动控制器,或者它是在菜单场景中创建的,并且在重新加载场景时,它的引用没有正确更新。您还可以在通过场景更改保存的脚本中使用Destroy(this);,在脚本运行完成后将其删除。