我想創建使用Unity與C#的Arkanoid 3D遊戲。我創建了一個簡單的菜單(場景0),我可以開始我的遊戲,我的主場景是實際比賽發生的場景(場景1)和記分牌(場景2),這是在玩家在開始時失去所有3個球后顯示的。按任意鍵後,我回到菜單並可以重新開始遊戲。這是問題開始的地方。Unity MissingReferenceException當第二次加載相同的場景
在第一場比賽失利後,我的比賽變得瘋狂。我得到的「MissingReferenceException」 S負載,如一個下面(但有些連接到其他對象(如GUIText的等):
MissingReferenceException: The object of type 'Player' has been destroyed but
you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
Player.BallLost() (at Assets/Player/Player.cs:164)
GameEventManager.TriggerBallLost() (at Assets/Menagers/GameEventManager.cs:30)
Ball.Update() (at Assets/Ball/Ball.cs:47)
我注意到,通過不分配變量casued MissingReferenceExceptions的負載,但這種感覺的有點不同勢。因爲它在「第一次遊戲」中完全正常工作,什麼會導致這個問題?我在第二局比賽發動後,在檢查員中做出了迴應,並且所有變量都被分配給了對象。代碼,因爲它已經變得相當大,並被分成> 10個腳本。
您是否在重新開始新遊戲後重設值? – 2013-02-20 13:59:18
你有沒有單身人士或設置任何對象爲[DontDestroyOnLoad](http://docs.unity3d.com/Documentation/ScriptReference/Object.DontDestroyOnLoad.html)(看來你的GameEventManager是)? – onevcat 2013-02-20 14:15:02
你如何加載不同的場景? – Joetjah 2013-02-20 14:37:29