открыть и воспроизвести сцену в Unity3d

Я сделал проект со многими сценами в Unity3D. В первой сцене есть кнопки, каждая из которых будет воспроизводить сцену при нажатии. Например, если игрок нажимает кнопку «Показать воздушный шар», то открывается сцена с названием «Воздушный шар» (которая содержит объект воздушного шара и его анимацию).

Как я могу это сделать с помощью кода JavaScript?


person Abdulkareem    schedule 22.07.2011    source источник


Ответы (3)


См. Application.LoadLevel (...).

Из документации:

[...]. Прежде чем вы сможете загрузить уровень, вы должны добавить его в список уровней, используемых в игре. [...]

// Loads the level with index 0
Application.LoadLevel (0);

// Load the level named "HighScore".
Application.LoadLevel ("HighScore");
person DuckMaestro    schedule 23.07.2011

Первое, что вам нужно сделать, это добавить все уровни, которые вы хотите, в свойство Build Settings. Перейдите в меню «Unity» или «Файл», «Настройки сборки» и перетащите свои сцены в окно прокрутки. Затем он присвоит им логический номер (или вы можете ссылаться на них по имени).

Application.LoadLevel(0); // this loads the first level in the list
Application.LoadLevel("nameoflevel"); //does the same thing numerically except by name
Application.LoadLevel(Application.loadedLevel); //reloads current level
Application.LoadLevel(Application.loadedLevel + 1); //loads the next level in order
Application.LoadLevel(Application.loadedLevel - 1); //loads the prior level in order
Application.LoadLevel(Application.levelCount - 1); //loads the last level in list
person Apollo SOFTWARE    schedule 02.01.2013

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

Перейдите в File-> Build Settings и перетащите туда свои сцены, затем используйте следующее.

Application.LoadLevel("Ballon");

Если вы хотите перезагрузить текущий уровень, вы можете использовать

Application.LoadLevel (Application.loadedLevel);

Вы, конечно, должны убедиться, что вручную сбросили или уничтожили все, что было создано сценой и помечено как DontDestroyOnLoad.

И да, единственный способ разместить уровни в вашей сборке в любом порядке - это из меню настроек сборки. Вы можете перейти к тому, какой уровень загружен, указав его имя или порядок сборки, но если вы хотите вставить свои уровни по порядку в последовательность сборки и просто хотите перейти с одного уровня на следующий (например, Меню-> Уровень1- > Level2-> EndGame) вы можете использовать

Application.LoadLevel (Application.loadedLevel + 1);
person Ravi Patel    schedule 09.04.2012