2016-06-21 74 views
-2

我創建了一個簡單場景,其中SceneManager作爲Singleton實現。重新啓動後,玩家無法移動

僅使用該場景時,它的工作完美無瑕。

然後我添加了一個重啓按鈕,並開始出現問題。

最初我有一些NullReferenceException問題:我發現原因,問題是由於未清除單例實例的一些數組;該腳本找到了一個包含x個元素的數組,但它們都是空引用。所以我在Start()函數中添加了一些代碼以檢查數組是否爲空。如果它不是我清除數組(開始之前數組必須是空的,如果不是,它是一個空引用數組)。

在解決了所有NullReferenceException問題(導致應用程序崩潰)後,我仍然無法使應用程序在重新啓動後運行。

新的問題是,球員,其GameObject場景被定義爲GameObjectCapsuleCollider,一個RigidBodyRigidBodyFPSController,重新啓動後不動。我認爲這是附加腳本的問題,可能在重新啓動後不會再次創建。

有什麼想法?

+1

你在哪裏得到空指針?我只是測試了這些代碼,它的工作原理很好....你能給出關於你的問題的更多細節嗎? – Cabrra

+0

@Cabrra什麼代碼?我在他的帖子 – Minzkraut

+0

中找不到任何他編輯的帖子。您可以點擊「編輯」鏈接查看原文 – Cabrra

回答

1

嘗試

Application.LoadLevel("your_scene"); 

一下添加到restart_function /代碼,您有。 這應該將電平/場景重置爲加載的原始位置。

0

我認爲你可以首先用遊戲對象初始化array,然後在restart之後初始化數組,它首先定義了數組中的固定引用,以便它指向現在正在銷燬的舊對象,並且腳本試圖引用它。 使用創建數組null重新初始化對象併爲其分配值。 或application.load("scene_name")