Как переименовать сцену в unity
Перейти к содержимому

Как переименовать сцену в unity

  • автор:

Scenes

Сцены содержат объекты вашей игры. Они могут использоваться для создания главного меню, отдельных уровней и для других целей. Можно считать каждый файл сцены отдельным игровым уровнем. В каждой сцене можно разместить объекты окружения, заграждения, декорации, по кусочкам создавая дизайн и саму игру.

A new empty scene, with the default 3D objects - a camera and a directional light.

When you create a new Unity project, your scene view will show a new Scene. This is an untitled and unsaved scene. The scene will be empty except for defult objects — either an orthographic camera, or a perspective camera and a directional light, depending on whether you started the project in 2D or 3D mode.

To save the scene you’re currently working on, choose File > Save Scene from the menu, or pres Ctrl/Cmd + S.

Scenes are saved as assets, into your project’s Assets folder. Therefore they appear in the Project Window, just like any other asset.

Some scene assets, saved and visible in the project view

To open a scene, in order to begin or continue working within that scene, double-click the scene asset in the Project Window.

If your current scene contains unsaved changes, you will be prompted to save or discard the changes.

Multi-Scene Editing.

It is possible to have multiple scenes open for editing at one time. For more information about this, see Multi-Scene Editing.

Переход между сценами

Приветствую! В данной статье мы разберём несколько способов перехода между сценами, а именно:

  1. Смена сцен по названию.
  2. Смена сцен по индексам.
  3. Смена сцен, используя параметры.

Смена сцен по названию

Данный способ самый простой, и встречается он очень часто. Он используется тогда, когда нам необходимо перейти точно на определённую сцену. Для этого создадим C# скрипт, с названием, например, Scenes. И пропишем в нём следующий код:

using UnityEngine; using UnityEngine.SceneManagement; public class Scenes : MonoBehaviour < public void OpenMenu() < SceneManager.LoadScene("Menu"); >public void OpenGame() < SceneManager.LoadScene("Game"); >>

Разбор кода

Обратите внимание, что при работе со сценами, нам необходимо обязательно подключить библиотеку:

using UnityEngine.SceneManagement; 

Дальше мы создаём функцию OpenMenu(), которая будет загружать сцену с названием Menu. Вторая функция с названием OpenGame() загружаем сцену с названием Game. Убедитесь, что сцены с такими названиями существуют в Вашем проекте.

Как видите, всё очень просто. Условия, при которых Вы будете запускать данные функции, могут быть совсем разные. Например: клик на клавишу «Esc», здоровье персонажа меньше нуля, и тд. Пример:

if(HealthUser

Смена сцен по индексам

Данный способ аналогичен предыдущему, за исключением того, что мы вместо названий сцен, используем их индексы. Данный способ полезен в тех случаях, когда нам необходимо перейти на следующую или предыдущую сцену. Создадим C# скрипт, с названием, например, Scenes. И пропишем в нём следующий код:

using UnityEngine; using UnityEngine.SceneManagement; public class Scenes : MonoBehaviour < public void OpenMenu() < SceneManager.LoadScene(0); >public void OpenGame() < SceneManager.LoadScene(1); >>

Как видите, код аналогичен предыдущему, поэтому разбирать мы его не будем. Единственное что хотелось бы отметить, что благодаря функциям, у нас открываются чуть больше возможностей перехода на сцены. Например, мы можем перейти на следующую или предыдущую функцию:

using UnityEngine; using UnityEngine.SceneManagement; public class Scenes : MonoBehaviour < public void NextLevel() < var index = SceneManager.GetActiveScene().buildIndex; SceneManager.LoadScene(index + 1); >public void PreviousLevel() < var index = SceneManager.GetActiveScene().buildIndex; SceneManager.LoadScene(index - 1); >>

Разбор кода

Строчки в функции NextLevel():

var index = SceneManager.GetActiveScene().buildIndex; SceneManager.LoadScene(index + 1); 

В первой строчке мы в переменную index мы заносим тот индекс сцены, в котором мы находимся в данный момент. А уже во второй строчке, мы увеличиваем индекс нашей сцены на единицу, и запускаем таким образом следующую сцену.

В функции PreviousLevel() всё аналогично, только индекс мы не увеличиваем на единицу, а уменьшаем. Тем самым запускаем предыдущую сцену.

Обратите внимание! Перед тем как работать со сценами по их индексам, нам необходимо добавить все сцены в Build Settings. Для этого жмём на вкладку File — Build Settings. Далее перетаскиваем все свои сцены в область Scenes in Build, и расставляем их по порядку. После чего просто закрываем данное окно. Теперь можно спокойно работать с индексами.

Смена сцен, используя параметры

Данный способ аналогичен предыдущему, только здесь мы переходим на определённую сцену исходя из переданного аргумента в нашу функцию.

using UnityEngine; using UnityEngine.SceneManagement; public class Scenes : MonoBehaviour < public void GoToLevel(int number) < SceneManager.LoadScene(number); >>

Разбор кода

Функция GoToLevel() принимает в качестве аргумента номер индекса, который нам необходимо открыть, и заносит его в переменную number. Этот метод защитит нас от дублирования однотипных функций, которые по идее выполняют одно и тоже.

Давайте теперь попробуем выполнить функцию GoToLevel(), передав ей аргумент «1» следующим образом:

GoToLevel(1)

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

Если Вам понравилась сцена, буду рад Вашим лайкам.

Сочетания клавиш Unity

Это обзор горячих клавиш Unity, установленных по умолчанию. Вы также можете скачать таблицу в формате PDF для Windows и MacOSX. Если сочетание клавиш содержит CTRL/CMD, это означает, что нужно использовать клавишу Control на Windows или клавишу Command на MacOSX.

Tools
“Горячая” клавиша Действие
Q Pan (перемещение камеры сцены)
W Move (перемещение)
E Rotate (вращение)
R Scale (масштабирование)
T Rect Tool
Z Pivot Mode toggle (переключение Pivot-режима)
X Pivot Rotation Toggle (переключение поворота пивота)
V Vertex Snap (привязка вершин)
CTRL/CMD+ЛКМ Snap (привязка)
GameObject
CTRL/CMD+SHIFT+N Создать новый игровой объект
ALT+SHIFT+N New empty child to selected game object
CTRL/CMD+ALT+F Переместить объект к точке вида
CTRL/CMD+SHIFT+F Выровнить по виду
SHIFT+F или двойное F Привязывает камеру окна Scene View к выбранному игровому объекту
Window (окно)
CTRL/CMD+1 Scene (сцена)
CTRL/CMD+2 Game (игра)
CTRL/CMD+3 Inspector (инспектор)
CTRL/CMD+4 Hierarchy (иерархия)
CTRL/CMD+5 Project (проект)
CTRL/CMD+6 Animation (анимация)
CTRL/CMD+7 Profiler (профайлер)
CTRL/CMD+9 Магазин ассетов
CTRL/CMD+0 Version Control
CTRL/CMD+SHIFT+C Console (консоль)
Edit
CTRL/CMD+Z Отменить
CTRL+Y (только на Windows) Повторить
CMD+SHIFT+Z (только на Mac) Повторить
CTRL/CMD+X Вырезать
CTRL/CMD+C Копировать
CTRL/CMD+V Вставить
CTRL/CMD+D Дублировать
SHIFT+Del Удалить
F Центрировать камеру сцены на объекте
CTRL/CMD+F Найти
CTRL/CMD+A Выбрать все
CTRL/CMD+P Играть
CTRL/CMD+SHIFT+P Пауза
CTRL/CMD+ALT+P Шаг
Selection (выделение)
CTRL/CMD+SHIFT+1 Загрузить выделение 1
CTRL/CMD+SHIFT+2 Загрузить выделение 2
CTRL/CMD+SHIFT+3 Загрузить выделение 3
CTRL/CMD+SHIFT+4 Загрузить выделение 4
CTRL/CMD+SHIFT+5 Загрузить выделение 5
CTRL/CMD+SHIFT+6 Загрузить выделение 6
CTRL/CMD+SHIFT+7 Загрузить выделение 7
CTRL/CMD+SHIFT+8 Загрузить выделение 8
CTRL/CMD+SHIFT+9 Загрузить выделение 9
CTRL/CMD+ALT+1 Сохранить выделение 1
CTRL/CMD+ALT+2 Сохранить выделение 2
CTRL/CMD+ALT+3 Сохранить выделение 3
CTRL/CMD+ALT+4 Сохранить выделение 4
CTRL/CMD+ALT+5 Сохранить выделение 5
CTRL/CMD+ALT+6 Сохранить выделение 6
CTRL/CMD+ALT+7 Сохранить выделение 7
CTRL/CMD+ALT+8 Сохранить выделение 8
CTRL/CMD+ALT+9 Сохранить выделение 9
Assets (ассеты)
CTRL/CMD+R Обновить

Customizing Your Workspace (Настройка рабочего пространства)

Загрузить текущую сцену Unity

По идее GetActiveScene — это метод. А вы обращаетесь к нему как к свойству. То есть, минимум, нужно писать так: SceneManager.GetActiveScene() . Это как вступление-отступление.

Далее. Метод GetActiveScene возвращает объект типа Scene у которого, как можно увидеть пройдя по ссылке в документацию, есть поле name, которое возвращает имя сцены.

Соответственно, зная это, вам нужно написать так:

SceneManager.LoadScene(SceneManager.GetActiveScene().name); 

Отслеживать
ответ дан 3 сен 2016 в 13:32
Алексей Шиманский Алексей Шиманский
73.5k 12 12 золотых знаков 93 93 серебряных знака 182 182 бронзовых знака

  • c#
  • unity3d
    Важное на Мете
Связанные
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.29.8372

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *