版本: Unity 6 (6000.0)
语言英语
  • C#

Scene.name

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个更改建议,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

public string name;

描述

返回游戏中或应用程序中当前激活的场景的名称。

Scene.name 返回一个运行时、只读的字符串值。 name 限制为 244 个字符。场景名称默认为 scene。用户在游戏创建期间更改 name

以下脚本示例根据 GUI.Button 点击和场景名称更改场景。要使此示例工作

  1. 创建一个包含两个场景的项目,scene1scene2
  2. 将下面的脚本附加到添加到 scene1GameObject
  3. 将相同的脚本附加到添加到 scene2GameObject
  4. 点击 GameObject 并转到 Inspector。
  5. My First Scene 字段和 My Second Scene 字段中,输入您想要切换的场景的名称,scene1scene2
  6. 在项目中双击 scene1 选择它,然后按 Playscene1 场景将出现。
  7. 点击 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"); } } } }