2016-10-30 62 views
0

我試圖讓它如此,當玩家擊中一個盒子時,它會進入下一個場景。但我不知道我會怎麼做,因爲這個腳本不起作用。如何在C#中改變碰撞場景,腳本不能正常工作

任何人都可以幫忙嗎?沒有明確的錯誤。

這裏的腳本:

void OnCollisionEnter(Collision collision) 
{ 
    if (collision.gameObject.tag == "Block") 
    { 
     Application.LoadLevel("2"); 
    } 
} 

我不認識到這個問題,誰能幫助?

+0

沒有更多的上下文,這是沒有意義的。您可能至少需要另一個標籤。它是統一的嗎? –

+0

是的,它是統一的。 –

回答

1

Application.LoadLevel已過時,請使用SceneManager.LoadScene。你確定場景的名字是2,還是建立索引?

https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadScene.html

using UnityEngine.SceneManagement; 

... 

void OnCollisionEnter(Collision collision) 
{ 
    if (collision.gameObject.tag == "Block") 
    { 
     SceneManager.LoadScene ("SceneName"); 
     //Or: 
     //SceneManager.LoadScene (SceneIndex); //(without these: ", because it's a number - an int, not a string) 
    } 
} 
+0

這仍然無法正常工作。 –

+0

對不起,在一個答案寫它,還不能評論。你確定代碼段被執行了嗎?在左括號後面加上「Debug.LogError(」Positive「);」。另外,你確定你正在加載的場景存在嗎?試圖加載名爲2的場景有點可疑。 – Trigary

1

檢查構建設置菜單,並確保您的現場已被添加到構建。

More info on Build Settings

+0

我已經這樣做了,但它仍然無法正常工作 –