2016-11-08 28 views
1

我是超級新手,我無法在網上找到正確答案。我想要的只是我遊戲中的變化場景。我已經有了按鈕等,但是我無法從「點擊」功能菜單中選擇「菜單」腳本。取代LoadLevel,我該如何使用SceneManager

歡迎所有的答案!

using UnityEngine; 
using UnityEngine.SceneManagement; 
using System.Collections; 

public class Menu : MonoBehaviour { 
public void ChangeScene(string sceneName) 
    { 
     SceneManager.LoadScene("sceneName"); 
    } 
} 

enter image description here

回答

1

不能只需插上Menu腳本到左側的插槽。

您必須將Menu附加到遊戲對象,然後將該GameObject插入左側插槽。然後,您可以選擇將哪個腳本和函數發送到右側。

下圖顯示了錯誤的方式做到這一點(這是你目前如何做)

enter image description here

的是正確的方式做到這一點

enter image description here

您還可以從代碼:

public class Menu : MonoBehaviour 
{ 
    public Button playButton; 

    void Start() 
    { 
     //Add Button Event 
     playButton.onClick.AddListener(() => buttonCallBack(playButton)); 
    } 
    public void ChangeScene(string sceneName) 
    { 
     SceneManager.LoadScene("sceneName"); 
    } 

    private void buttonCallBack(Button buttonPressed) 
    { 
     if (buttonPressed == playButton) 
     { 
      ChangeScene("myscene"); 
     } 
    } 
} 
2

這裏的幾個問題。首先,函數「ChangeScene」

public void ChangeScene(string sceneName) 
{ 
    SceneManager.LoadScene(sceneName); 
} 

然後,您可以在腳本中有一個問題,因爲你不能任意監聽器添加到的OnClick委託。修復控制檯拋出的每個問題。奇怪的是菜單腳本的名字沒有出現在Menu組件中。確保文件名是「Menu.cs」

最後,拖&將按鈕拖放到現場「運行時,只有」下,選擇「菜單> ChangeScene」