2013-03-16 77 views
2

重裝一幕問題我有一個問題...Unity3D - 通過Application.LoadLevel

有在我的遊戲四個場景:一個開盤現場,一個場景來選擇球員,實際的遊戲場景,以及遊戲結束。

我遇到了當我打開我的實際比賽現場問題的其他次

Application.LoadLevel("Let's play the game!") 

這就是我要離開了這一幕:

if(GUI.Button (new Rect (x, y, w, h), "Quit", buttonStyle)) 
{ 
    Application.Quit(); 
    Application.LoadLevel("Opening Screen"); 
} 

當我打開我的理想水平的第二次,相機應該是跟隨第一個玩家。這沒有發生。我提供了一個「重啓」選項,可以解決這個問題,但我不希望這個事件發生在第一位。

更嚴重的問題是動態加載的GameObjects。我收到''GameObject'已被銷燬,但您仍然試圖訪問它。「我不確定這是從哪裏來的,因爲我沒有看到我以前在任何地方稱之爲「摧毀」的地方。此外,當我在Unity內運行應用程序時,動態創建的對象確實出現在層次結構中。

我認爲我的問題的根源在於失敗的相機,但我不確定如何解決它。

有沒有人有任何建議?

回答

3

這聽起來像你需要確保調用DontDestroyOnLoad保持你的對象在內存中的水平負載之間:

DontDestroyOnLoad(gameObjectToPreserve); 

此外,從例如下面的代碼將退出你的應用程序之前,它可以加載你的「開屏「:

if(GUI.Button (new Rect (x, y, w, h), "Quit", buttonStyle)) 
{ 
    Application.Quit(); 
    Application.LoadLevel("Opening Screen"); 
} 

刪除行‘Application.Quit()’如果你打算返回到開始屏幕。你不會在編輯器的預覽模式下看到這個問題,因爲Application.Quit()在那裏沒有做任何事情。

+0

是的,刪除Application.Quit();這實際上會在Unity Editor之外關閉你的遊戲。 – 2013-03-17 08:12:31

+0

你們快! 感謝有關Application.Quit()的警告。 我開始評論一堆源代碼並隔離了我的問題。我的相機GameObject鏈接到一個腳本,當所需級別重新加載時,腳本失敗。顯然,這個錯誤已經在整個關卡中造成了火車殘骸的影響。 – 2013-03-17 21:10:03

+0

我修復了一切。我能夠找到幾個驗證物體缺失的區域。這消除了''GameObject'已被破壞,但你仍然試圖訪問它「。 關於相機,我有一個問題:是否調用GUI。*僅限於OnGUI()內部?我在OnGUI()中調用引用GUI.Button,GUI.Labels等的調用。當所有這些GUI。*調用都在OnGUI()內部進行時,相機異常消失。 – 2013-03-18 22:42:47

相關問題