我如何使用 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");
}
}
}
我是编程新手,我在网上找不到正确的答案。我想要的只是改变我游戏中的场景。我已经有了按钮等。但是我无法从单击功能菜单中选择 "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");
}
}
}