而不是LoadLevel,我如何使用SceneManager

时间:2016-11-08 10:13:18

标签: unity3d 2d

我是编码的新手,我无法在网上找到正确的答案。我想要的只是改变游戏场景。我已经有了按钮等但是我无法选择"菜单"点击功能菜单中的脚本。

欢迎所有回答!

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

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

enter image description here

2 个答案:

答案 0 :(得分:2)

这里有几个问题。首先,功能“ChangeScene”

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

然后,您的脚本可能会出现问题,因为您无法向OnClick委托添加任何侦听器。修复控制台抛出的每个问题。奇怪的是,Menu脚本的名称不会出现在Menu组件中。确保文件名为“Menu.cs”

最后,拖拉&将按钮拖放到“仅限运行时”下的字段中,然后选择“菜单> ChangeScene”

答案 1 :(得分:1)

无法只需将Menu脚本插入左侧插槽。

您必须将Menu附加到GameObject,然后将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");
        }
    }
}