Сцены в Unity3D

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

 

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

Сцена создаваемой игры
Dante

 

И вот здесь становится понятно, что если наш персонаж упал в пропасть, то он не должен сразу появляться на прежнем месте. Было бы логичнее если бы появлялась табличка о том что вы проиграли и тд. И переправляло бы на другую сцену. Сохраняем существующую сцену, от нее мы будем отталкиваться.

 

А теперь собственно нам необходимо создать еще одну сцену, для этого в Unity3d нажимаем File>New Scene и мы создали новую пустую сцену. Теперь добавляем на сцену небо, это я не так давно описывал, посмотрите где там добавление Scybox я его делал когда учился делать небо. Теперь мы имеем пустую сцену на которой есть небо. Выбираем вид получше так чтобы были облака, для того чтобы повернуть камеру, используйте вращение. И продолжаем, хоть вы можете выбрать свой вид, да хоть вид камня, тоже прикольно смотрится. Теперь сохраняем сцену, заходим в File>Save Scene и называем, я назвал просто menu. Теперь мы имеем сцену меню. По идее сцены нужно сохранить, жмем File>Build Settings и перетаскиваем в открывшееся окно сцены. В окне Build Settings появляются номера сцен, их надо запомнить. Теперь давайте будем писать код.

 

Переходим на нашу первую сцену, с платформой, находим скрипт который добавляет нашего персонажа на сцену, и открываем его. Напомню скрипт Spawn. У нас когда человек падает вызывается функция SpawnPlayer(), давайте это исправим. Удаляем эту функцию и пишем Application.LoadLevel() в скобочках нам необходимо указать либо номер сцены, который мы сохранили в Build Settings, на которую вы хотите перейти, либо название. Давайте укажем номер, сцена меню у меня это номер 1. Должно получится подобным образом:

Переход на другую сцену
Dante

 

Теперь когда мы перейдем на сцену меню, давайте мы туда поместим скрипт с нашей кнопкой, о нем я недавно говорил. Так что сделаем скрипт gui что я описывал недавно, и цепляем его на камеру. Только давайте немного его исправим. Для начала уберем из него стиль, а то он страшный у меня. Так же при нажатии, в нашем прошлом скрипте gui, выводилось в консоль «Start» при помощи Debug.Log(«Start»), это тоже уберем. И напишем чтобы при нажатии, наш персонаж появлялся обратно на платформе. Пишем Application.LoadLevel(0), что вернет нас к сцене с нашей платформой. Делаем вот такой скрипт:

Скрипт кнопки старт
Dante

 

Теперь при падении, нам будет необходимо просто нажать на кнопку my game, которая кстати пока выглядит не очень. Давайте это изменим. Открываем наш скрипт gui, и меняем расположение нашей кнопки. Будем делать её теперь не при помощи пикселей, а есть такой класс как Screen и он может возвращать ширину экрана, Screen.width, зададим четверть ширины экрана, вот таким образом Screen.width/4. Таким же образом сделаем отступ сверху Screen.height/8*3 восемь третьих. Еще зададим ширину нашей кнопки, при помощи Scrreen.width/2, то бишь ширину в пол экрана. А так же высоту кнопки Screen.height/4, высота будет так же в четверть экрана. Теперь сохраняем наш скрипт, у меня получился вот такой скрипт:

Скрипт кнопки запуска игры
Dante

 

Запускаем нашу игру, прыгаем с платформы и попадаем на сцену с кнопкой my game.

Сцена с кнопкой запуска игры
Dante

 

Нажимаем на кнопку, и вот мы обратно на платформе. Главное смотрите не путайтесь в скриптах, особенно если делаете несколько уроков подряд, а то можете к примеру забыть снять скрипт с кнопкой с камеры на сцене с платформой, и кнопка будет торчать везде, что не нужно. Не забывайте снимать ненужные скрипты.

 

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

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

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