【问题标题】:In Unity, when I load a scene a second time, some objects don't show up在 Unity 中,当我第二次加载场景时,某些对象不会出现
【发布时间】:2018-09-08 19:09:25
【问题描述】:

我有两个场景:菜单和游戏。我正在使用 C#。

当你在游戏中死去时,你会被送回菜单

SceneManager.LoadScene("Menu");

菜单中有一个带有 GUIButton 的脚本,单击该脚本会加载游戏

SceneManager.LoadScene("Game");

我想要发生的是,当我单击菜单场景中的按钮时,它会加载游戏,就像我刚刚在编辑器中打开游戏场景时单击播放按钮一样。

相反,它进入了游戏场景,但游戏场景中的一些对象似乎丢失了。我没有在任何地方使用 DontDestroyOnLoad()。

场景中的某些对象确实出现了,但其他对象则没有。最奇怪的是,缺失对象的脚本中有一些数据字段被其他一些脚本引用,并且这些字段给出了有意义的值。

有谁知道发生了什么,或者我可以做些什么来获得预期的结果?

【问题讨论】:

  • 你在使用一些单例吗?
  • @RyanSingh 我不知道单例是什么。什么是单例,我如何知道我是否在使用单例?
  • @RyanSingh 自从发布那篇文章以来,我已经看过一个单例教程......我有几个对象的代码基本上完成了单例的工作,如果实例变量已经加载,则会自行销毁。我会检查这是否是导致对象被破坏的原因......编辑:是的,这就是导致问题的原因。

标签: c# unity3d


【解决方案1】:

这些是静态对象还是动态对象?尝试在加载场景时调用的函数中实例化它们。

【讨论】:

    【解决方案2】:

    事实证明,如果不是第一次创建该对象,那么我正在销毁我的一个对象,而我没有意识到这一点。

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多