我如何使用 SceneManager 而不是 LoadLevel

Instead of LoadLevel, how do i use SceneManager

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

欢迎大家回答!

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

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

这里有几个问题。一、函数"ChangeScene"

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

那么,您的脚本可能有问题,因为您无法向 OnClick 委托添加任何侦听器。修复控制台抛出的所有问题。奇怪的是Menu脚本的名字并没有出现在Menu组件中。确保文件名为 "Menu.cs"

最后,将按钮拖放到 "Runtime Only" 和 select "Menu > ChangeScene"

下方的字段中

不能Menu 脚本插入左侧插槽。

您必须将 Menu 附加到 GameObject,然后将 GameObject 插入左侧 slot.You 然后才能选择将事件发送到哪个脚本和函数正确的。

下图显示了错误的做法(这是你目前的做法):

这是正确的做法:

您也可以通过代码执行此操作:

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");
        }
    }
}