Переход на новую сцену - Форум Игроделов
Вт, 29 Июл 2025, 12:04 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Переход на новую сцену
NapalmRainДата: Вт, 30 Июл 2013, 10:52 | Сообщение # 1
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Доброго всем времени суток!

Есть проект. В нём есть сцена. Улица, дома и т.д.
Бегу я значит бегу и хочу зайти в дом. Как сделать так, чтоб при нажатии на двери она открывалась и я мог туда войти я знаю, но проблема в том, что моделер поставляет мне внутренности зданий как отдельные проекты и я решил делать по принципу обливиона, при входе в дом, перенос на новую локацию.
Если я правильно понимаю механизм, я должен создать новую сцену в том же проекте, а дальше как-то прописать скрипт перехода на эту сцену, по нажатию, скажем, Е или энтер на этой двери. Вот интересует данный момент.

Заранее благодарю!
 
СообщениеДоброго всем времени суток!

Есть проект. В нём есть сцена. Улица, дома и т.д.
Бегу я значит бегу и хочу зайти в дом. Как сделать так, чтоб при нажатии на двери она открывалась и я мог туда войти я знаю, но проблема в том, что моделер поставляет мне внутренности зданий как отдельные проекты и я решил делать по принципу обливиона, при входе в дом, перенос на новую локацию.
Если я правильно понимаю механизм, я должен создать новую сцену в том же проекте, а дальше как-то прописать скрипт перехода на эту сцену, по нажатию, скажем, Е или энтер на этой двери. Вот интересует данный момент.

Заранее благодарю!

Автор - NapalmRain
Дата добавления - 30 Июл 2013 в 10:52
ЛевшаДата: Вт, 30 Июл 2013, 16:08 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
А что в мануале тебя забанили ? biggrin

Application.LoadLevel
static function LoadLevel(index: int): void;
static function LoadLevel(name: string): void;

Parameters:
index The level to load.
name The name of the level to load.

Loads the level by its name or index.
Before you can load a level you have to add it to the list of levels used in the game. Use File->Build Settings... in Unity and add the levels you need to the level list there. MonoBehaviour.OnLevelWasLoaded is called on all active game objects after the level has been loaded.

Код
    // Load the level named "HighScore".

  Application.LoadLevel ("HighScore");


When loading a new level all game objects that have been loaded before are destroyed. If you want to let an object survive when loading a new level, use Object.DontDestroyOnLoad. Calling LoadLevel will update Application.loadedLevel and Application.loadedLevelName. See Also: Application.LoadLevelAsync, Application.LoadLevelAdditive, Application.LoadLevelAdditiveAsync.



X.cor.R (Prologue)
 
СообщениеА что в мануале тебя забанили ? biggrin

Application.LoadLevel
static function LoadLevel(index: int): void;
static function LoadLevel(name: string): void;

Parameters:
index The level to load.
name The name of the level to load.

Loads the level by its name or index.
Before you can load a level you have to add it to the list of levels used in the game. Use File->Build Settings... in Unity and add the levels you need to the level list there. MonoBehaviour.OnLevelWasLoaded is called on all active game objects after the level has been loaded.

Код
    // Load the level named "HighScore".

  Application.LoadLevel ("HighScore");


When loading a new level all game objects that have been loaded before are destroyed. If you want to let an object survive when loading a new level, use Object.DontDestroyOnLoad. Calling LoadLevel will update Application.loadedLevel and Application.loadedLevelName. See Also: Application.LoadLevelAsync, Application.LoadLevelAdditive, Application.LoadLevelAdditiveAsync.


Автор - Левша
Дата добавления - 30 Июл 2013 в 16:08
NapalmRainДата: Ср, 31 Июл 2013, 10:17 | Сообщение # 3
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата (Левша)
А что в мануале тебя забанили ?

Вот честно, просто из головы вылетело biggrin
В любом случае, большое спасибо, всё получилось)

Добавлено (31 Июл 2013, 10:17)
---------------------------------------------
Возник вопрос номер два. Мануал - это хорошо, когда знаешь, что искать. А вот тут как-то даже не могу придумать, как мысль сформулировать.

В общем, реально ли как-то сделать прелоадер загрузки сцены? Что бы пока она грузится показывалась картинка какая-то, например, полоса загрузки показывала процесс, пока всё подгружалось, уже отображалась сцена уже потом.

 
Сообщение
Цитата (Левша)
А что в мануале тебя забанили ?

Вот честно, просто из головы вылетело biggrin
В любом случае, большое спасибо, всё получилось)

Добавлено (31 Июл 2013, 10:17)
---------------------------------------------
Возник вопрос номер два. Мануал - это хорошо, когда знаешь, что искать. А вот тут как-то даже не могу придумать, как мысль сформулировать.

В общем, реально ли как-то сделать прелоадер загрузки сцены? Что бы пока она грузится показывалась картинка какая-то, например, полоса загрузки показывала процесс, пока всё подгружалось, уже отображалась сцена уже потом.


Автор - NapalmRain
Дата добавления - 31 Июл 2013 в 10:17
dostalitionДата: Ср, 31 Июл 2013, 11:03 | Сообщение # 4
 
Сообщений: 155
Награды: 0
Репутация: 9
Статус: Offline
Вот скрипт для перехода персонажа между уровнями с указанием точки появления и угла поворота в каждой сцене, может пригодится smile
Код
function Awake () {  
      DontDestroyOnLoad (transform.gameObject);  
  }  
  function OnLevelWasLoaded (level : int) {  
      if (level == 0){  
      Destroy(gameObject);  
      }  
      if (level == 2) {  
          transform.position = Vector3(2334.9,686.4,1833.3);  
          transform.rotation = Quaternion.Euler(0, 66, 0);  
      }  
      if (level == 3) {  
          transform.position = Vector3(29,3.4,42);  
          transform.rotation = Quaternion.Euler(0, 137, 0);  
      }  
       if (level == 4) {  
          transform.position = Vector3(26,2.3,48);  
          transform.rotation = Quaternion.Euler(0, 490, 0);  
      }  
       if (level == 5) {  
          transform.position = Vector3(21,7,45);  
          transform.rotation = Quaternion.Euler(0, 0, 0);  
      }  
  }
 
СообщениеВот скрипт для перехода персонажа между уровнями с указанием точки появления и угла поворота в каждой сцене, может пригодится smile
Код
function Awake () {  
      DontDestroyOnLoad (transform.gameObject);  
  }  
  function OnLevelWasLoaded (level : int) {  
      if (level == 0){  
      Destroy(gameObject);  
      }  
      if (level == 2) {  
          transform.position = Vector3(2334.9,686.4,1833.3);  
          transform.rotation = Quaternion.Euler(0, 66, 0);  
      }  
      if (level == 3) {  
          transform.position = Vector3(29,3.4,42);  
          transform.rotation = Quaternion.Euler(0, 137, 0);  
      }  
       if (level == 4) {  
          transform.position = Vector3(26,2.3,48);  
          transform.rotation = Quaternion.Euler(0, 490, 0);  
      }  
       if (level == 5) {  
          transform.position = Vector3(21,7,45);  
          transform.rotation = Quaternion.Euler(0, 0, 0);  
      }  
  }

Автор - dostalition
Дата добавления - 31 Июл 2013 в 11:03
commandobyДата: Ср, 31 Июл 2013, 11:09 | Сообщение # 5
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Цитата (NapalmRain)
Что бы пока она грузится показывалась картинка какая-то

В своей игре я перед самой загрузкой сцены вывожу на весь экран изображение загрузки, а потом загружаю сцену.
Код
if (loading == true) {
GUI.DrawTexture (Rect (Screen.width/2-Screen.height, 0, Screen.height*2, Screen.height), loadingImage);
Application.LoadLevel (1);
}


Блог.
 
Сообщение
Цитата (NapalmRain)
Что бы пока она грузится показывалась картинка какая-то

В своей игре я перед самой загрузкой сцены вывожу на весь экран изображение загрузки, а потом загружаю сцену.
Код
if (loading == true) {
GUI.DrawTexture (Rect (Screen.width/2-Screen.height, 0, Screen.height*2, Screen.height), loadingImage);
Application.LoadLevel (1);
}

Автор - commandoby
Дата добавления - 31 Июл 2013 в 11:09
NapalmRainДата: Пн, 05 Авг 2013, 19:40 | Сообщение # 6
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
За оба скрипта спасибо!
Так же для себя понял, что при загрузке больших сцен лучше использовать асинхронную загрузку.
Но вот интересует именно вариант прелоадера. То есть какой-то полосочки, которая будет отображать процесс загрузки, что-нибудь из цикла
Код
var per = (getByteLoaded/getByteTotal)*100;

Добавлено (05 Авг 2013, 19:40)
---------------------------------------------
Я так понимаю, никто с этим не сталкивался или просто в юнити нет подобных конструкция?
Приведённый выше код я вырвал из actionscript'а там такой конструкцией получаю процент загрузки. Если бы здесь можно было реализовать что-то подобное, можно было бы и красочный прелоадер нарисовать, уже дело фантазии.

Сообщение отредактировал NapalmRain - Ср, 31 Июл 2013, 18:37
 
СообщениеЗа оба скрипта спасибо!
Так же для себя понял, что при загрузке больших сцен лучше использовать асинхронную загрузку.
Но вот интересует именно вариант прелоадера. То есть какой-то полосочки, которая будет отображать процесс загрузки, что-нибудь из цикла
Код
var per = (getByteLoaded/getByteTotal)*100;

Добавлено (05 Авг 2013, 19:40)
---------------------------------------------
Я так понимаю, никто с этим не сталкивался или просто в юнити нет подобных конструкция?
Приведённый выше код я вырвал из actionscript'а там такой конструкцией получаю процент загрузки. Если бы здесь можно было реализовать что-то подобное, можно было бы и красочный прелоадер нарисовать, уже дело фантазии.


Автор - NapalmRain
Дата добавления - 05 Авг 2013 в 19:40
seamanДата: Пн, 05 Авг 2013, 23:15 | Сообщение # 7
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Ну это ж зависит оттого что и как вы собираетесь загружать. Например AssetBundle.LoadAsync возвращает AssetBundleRequest в котором есть progress. Откройте Help и поищите для своего случая.
 
СообщениеНу это ж зависит оттого что и как вы собираетесь загружать. Например AssetBundle.LoadAsync возвращает AssetBundleRequest в котором есть progress. Откройте Help и поищите для своего случая.

Автор - seaman
Дата добавления - 05 Авг 2013 в 23:15
NapalmRainДата: Вт, 06 Авг 2013, 02:08 | Сообщение # 8
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
seaman, благодарю. Теперь хотя бы понятно в каком направлении смотреть.
 
Сообщениеseaman, благодарю. Теперь хотя бы понятно в каком направлении смотреть.

Автор - NapalmRain
Дата добавления - 06 Авг 2013 в 02:08
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025