玩家重启后无法移动
Player can't move after restarting
我创建了一个简单的场景,其中 SceneManager
作为单例实现。
当只使用那个场景时,它完美无缺。
然后我添加了一个重启按钮,问题开始了。
最初我有一些NullReferenceException
问题:我找到了原因,问题是由于单例实例的一些数组没有被清除;该脚本找到了一个包含 x 个元素的数组,但它们都是空引用。所以我在 Start()
函数中添加了一些代码来检查数组是否为空。如果不是我清除数组(在开始之前数组必须是空的,如果不是,它是一个空引用数组)。
解决所有 NullReferenceException
问题(导致应用程序崩溃)后,我仍然无法在重新启动后使应用程序 运行。
新问题是玩家的GameObject
在场景中被定义为GameObject
和CapsuleCollider
、RigidBody
和RigidBodyFPSController
,重启后不动。我认为是附加脚本的问题,重启后可能不会再次创建。
有什么想法吗?
尝试
Application.LoadLevel("your_scene");
将此添加到您拥有的 restart_function/code。
这应该将 level/scene 重置为加载的原始文件。
我认为你可以先用游戏对象初始化 array
,然后 restart
它在首先定义的数组中有固定的引用,所以它指向现在销毁的旧对象,并且试图引用它的脚本。
通过创建数组 null
并为其赋值来重新初始化对象。
或 application.load("scene_name")
我创建了一个简单的场景,其中 SceneManager
作为单例实现。
当只使用那个场景时,它完美无缺。
然后我添加了一个重启按钮,问题开始了。
最初我有一些NullReferenceException
问题:我找到了原因,问题是由于单例实例的一些数组没有被清除;该脚本找到了一个包含 x 个元素的数组,但它们都是空引用。所以我在 Start()
函数中添加了一些代码来检查数组是否为空。如果不是我清除数组(在开始之前数组必须是空的,如果不是,它是一个空引用数组)。
解决所有 NullReferenceException
问题(导致应用程序崩溃)后,我仍然无法在重新启动后使应用程序 运行。
新问题是玩家的GameObject
在场景中被定义为GameObject
和CapsuleCollider
、RigidBody
和RigidBodyFPSController
,重启后不动。我认为是附加脚本的问题,重启后可能不会再次创建。
有什么想法吗?
尝试
Application.LoadLevel("your_scene");
将此添加到您拥有的 restart_function/code。 这应该将 level/scene 重置为加载的原始文件。
我认为你可以先用游戏对象初始化 array
,然后 restart
它在首先定义的数组中有固定的引用,所以它指向现在销毁的旧对象,并且试图引用它的脚本。
通过创建数组 null
并为其赋值来重新初始化对象。
或 application.load("scene_name")