重新启动后播放器无法移动

时间:2016-06-21 18:21:14

标签: c# unity3d nullreferenceexception unity5

我创建了一个简单的场景,其中SceneManager实现为单身人士。

当只使用那个场景时,它完美无瑕。

然后我添加了一个重启按钮并开始出现问题。

最初我有一些NullReferenceException问题:我找到了原因,问题是由于单个实例的某些数组未被清除;该脚本找到了一个包含x个元素的数组,但它们都是空引用。所以我在Start()函数中添加了一些代码,以检查数组是否为空。如果不是我清除数组(在开始之前数组必须为空,如果不是,则它是一个空引用数组)。

解决了所有NullReferenceException问题(导致应用程序崩溃)后,我仍然无法在重新启动后运行应用程序。

新问题是播放器,其GameObject在场景中定义为GameObjectCapsuleColliderRigidBodyRigidBodyFPSController ,重启后不动。我认为这是附加脚本的问题,可能在重新启动后不会再次创建。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试

Application.LoadLevel("your_scene");

将此添加到您拥有的restart_function /代码中。 这应该将级别/场景重置为已加载的原始。

答案 1 :(得分:0)

我认为你可以先用游戏对象初始化array,然后在restart之后在第一次定义的数组中有固定的引用,这样它就指向现在被破坏的旧对象,并尝试脚本引用它。 通过创建数组null重新初始化对象并为其指定值。 或application.load("scene_name")