返回游戏中或应用程序中当前激活的场景的名称。
Scene.name 返回一个运行时、只读的字符串值。 name 限制为 244 个字符。场景名称默认为 scene
。用户在游戏创建期间更改 name。
以下脚本示例根据 GUI.Button 点击和场景名称更改场景。要使此示例工作
scene1
和 scene2
。scene1
的 GameObject。scene2
的 GameObject。My First Scene
字段和 My Second Scene
字段中,输入您想要切换的场景的名称,scene1
和 scene2
。scene1
选择它,然后按 Play
。 scene1
场景将出现。Load Next Scene
按钮,将加载 scene2
。using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement;
public class Example : MonoBehaviour { // These are the Scene names. Make sure to set them in the Inspector window. public string myFirstScene, mySecondScene;
private string nextButton = "Load Next Scene"; private string nextScene; private static bool created = false;
private Rect buttonRect; private int width, height;
void Awake() { Debug.Log("Awake:" + SceneManager.GetActiveScene().name);
// Ensure the script is not deleted while loading. if (!created) { DontDestroyOnLoad(this.gameObject); created = true; } else { Destroy(this.gameObject); }
// Specify the items for each scene. Camera.main.clearFlags = CameraClearFlags.SolidColor; width = Screen.width; height = Screen.height; buttonRect = new Rect(width / 8, height / 3, 3 * width / 4, height / 3); }
void OnGUI() { // Return the current Active Scene in order to get the current Scene name. Scene scene = SceneManager.GetActiveScene();
// Check if the name of the current Active Scene is your first Scene. if (scene.name == myFirstScene) { nextButton = "Load Next Scene"; nextScene = mySecondScene; } else { nextButton = "Load Previous Scene"; nextScene = myFirstScene; }
// Display the button used to swap scenes. GUIStyle buttonStyle = new GUIStyle(GUI.skin.GetStyle("button")); buttonStyle.alignment = TextAnchor.MiddleCenter; buttonStyle.fontSize = 12 * (width / 200);
if (GUI.Button(buttonRect, nextButton, buttonStyle)) { SceneManager.LoadScene(nextScene); } } }
以下示例使用两个场景,其中一个场景的 Scene 名称很长,有 244 位数字。另一个名为 testScene
。要使此示例工作
1. 创建一个新项目。
2. 通过选择默认场景并使用 Assets->Rename 将其名称更改为 testScene
。
3. 接下来,创建一个第二个场景,再次选择它并使用 Asset->Rename。使用如下所示的名称。(这是 244 个字符的名称“0123456789...0123”。)
4. 创建一个 C# 脚本并将其命名为 Example.cs
。
5. 将以下脚本文本添加到 Example.cs
中。
6. 接下来,在两个场景中分别添加一个名为 GameObject
的空游戏对象。
7. 最后,将 Example.cs
复制到这两个 GameObject 中。
使用 Game
按钮启动 testScene
场景。显示一个 GUI 按钮,允许场景切换。
using UnityEngine; using UnityEngine.SceneManagement;
// SceneManagement.SceneManager-name example
public class Example : MonoBehaviour { private Scene scene;
void Start() { scene = SceneManager.GetActiveScene(); Debug.Log("Name: " + scene.name); }
void OnGUI() { if (GUI.Button(new Rect(10, 10, 150, 100), "Change Scene")) { if (scene.name == "testScene") { // The scene to load has a 244 characters name. SceneManager.LoadScene("0123456789012345678901234567890123456789" + "012345678901234567890123456789012345678901234567890123456789" + "012345678901234567890123456789012345678901234567890123456789" + "012345678901234567890123456789012345678901234567890123456789" + "012345678901234567890123"); } else { SceneManager.LoadScene("testScene"); } } } }