Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты
public string name;

Описание

Возвращает название сцены, которая в данный момент активна в игре или приложении.

Scene.name возвращает строковое значение времени выполнения, доступное только для чтения. name ограничено 244 символами. Имя сцены по умолчанию равно scene. Пользователь изменяет name во время создания игры.

Следующий пример скрипта изменяет сцену в зависимости от нажатия GUI.Button и имени сцены. Чтобы этот пример работал:

  1. Создайте проект с двумя сценами: scene1 и scene2.
  2. Прикрепите приведенный ниже сценарий к GameObject, добавленному в scene1.
  3. Прикрепите тот же скрипт к GameObject, добавленному в scene2.
  4. Нажмите на GameObject и перейдите в Инспектор.
  5. В поля My First Scene и поля My Second Scene введите названия сцен, которые вы хотите переключить. между scene1 и scene2.
  6. Выберите scene1, дважды щелкнув ее в проекте, и нажмите Play. Появится сцена scene1.
  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. Измените имя сцены по умолчанию на testScene, выбрав ее, а затем используйте Assets->Rename.
  3. Далее создайте вторую сцену, снова выберите ее и используйте Актив->Переименовать. Используйте имя, как показано ниже. (Это имя из 244 символов "0123456789...0123").
  4. Создайте сценарий C# и назовите его Example.cs.
  5. Добавьте следующий текст скрипта в Example.cs.
  6. Затем добавьте пустой GameObject с именем GameObject в каждую из двух сцен.
  7. Наконец скопируйте Example.cs в каждый из двух игровых объектов.

Используйте кнопку Игра, чтобы запустить сцену testScene. Показана кнопка графического интерфейса, которая позволяет переключаться между сценами.

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"); } } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3