我创建了一个简单的场景,其中SceneManager
实现为单身人士。
当只使用那个场景时,它完美无瑕。
然后我添加了一个重启按钮并开始出现问题。
最初我有一些NullReferenceException
问题:我找到了原因,问题是由于单个实例的某些数组未被清除;该脚本找到了一个包含x个元素的数组,但它们都是空引用。所以我在Start()
函数中添加了一些代码,以检查数组是否为空。如果不是我清除数组(在开始之前数组必须为空,如果不是,则它是一个空引用数组)。
解决了所有NullReferenceException
问题(导致应用程序崩溃)后,我仍然无法在重新启动后运行应用程序。
新问题是播放器,其GameObject
在场景中定义为GameObject
,CapsuleCollider
,RigidBody
和RigidBodyFPSController
,重启后不动。我认为这是附加脚本的问题,可能在重新启动后不会再次创建。
有什么想法吗?
答案 0 :(得分:1)
尝试
Application.LoadLevel("your_scene");
将此添加到您拥有的restart_function /代码中。 这应该将级别/场景重置为已加载的原始。
答案 1 :(得分:0)
我认为你可以先用游戏对象初始化array
,然后在restart
之后在第一次定义的数组中有固定的引用,这样它就指向现在被破坏的旧对象,并尝试脚本引用它。
通过创建数组null
重新初始化对象并为其指定值。
或application.load("scene_name")