Як зробити ліфт у грі NULLcode Studio, Ігри, Unity, Скрипти

Незважаючи на здавалося б простоту питання, для магістра-початківця ігрової індустрії, дана проблема може створити деякі труднощі. З одного боку, можна просто зробити анімацію від точки А і до точки Б, все це робиться досить легко в пару кліків, залишиться лише якось перемикати кліпи анімації, і ліфт ходитиме за розкладом. Але що якщо в процесі розробки необхідно змінити позицію ліфта? Правильно, доведеться знову перезаписувати анімацію. Тому найкраще управління організувати через скрипт. Основні завдання: рух від стартової позиції до кінцевої і перехід у режим очікування, потім назад; закриття виходу під час руху, щоб гравець не випав; контроль звуку.

Перш ніж продовжити, у вас уже має бути готовий сам ліфт. Не важливо який у нього дизайн, важливо те, що на платформу ліфта, тобто поверхню на яку заходитиме гравець, потрібно повісити невеликий скрипт, щоб була можлива нормальна взаємодія з об'єктом, наприклад:

studio

Ще, додамо щось на кшталт дверей, по суті просто колайдер, який перекриватиме вихід, щоб гравець не випав із ліфта. Назвемо його Lock.

ліфт

Далі всі об'єкти з яких зібраний ліфт, потрібно зробити дочірніми порожньому об'єкту. Тепер у нас є батько.

На батька чіпляємо скриптLiftGame:

Скрипт додастьAudio Sourceу який ми додаємо семпл звуку, який буде програватися під час руху, у самому компоненті відключаємо параметрPlay On Awakeі ставимо галочкуLoop. Скрипт також додастьSprite Renderer, з ним робити нічого не треба, цей компонент буде використовуватися для оптимізації, тобто щоб скрипт відключався якщо він не в полі зору камери, і включався якщонавпаки.

speed- швидкість руху ліфта.

_lock- тут об'єкт із колайдером, який закриває вихід із ліфта.

point- точка призначення. А стартовою буде вважатися поточна позиція.

_audioSource- тут додаємо нашAudio Source.

collIn- внутрішній тригер, що запускає ліфт.

collOut- тригер за межами моделі ліфта, перемикає його в режим очікування.

studio

Логіка в тому, що спочатку буде включено тригерColl In, коли гравець заходить у ліфт, то скрипт перемикається на зовнішній тригерСoll Outі починає рух. Після прибуття на місце, виходячи з ліфта, гравець активує зовнішній тригер і скрипт назад переходить у режим очікування, доки гравець знову до нього не зайде.

Тут зроблено плавний контроль звуку, тому клацань не повинно бути. І до речі, щоб все працювало у персонажа або того, хто заходить в ліфт, повинен бути встановлений тегPlayer, не забуваємо цю деталь і при необхідності змінюємо. Ще одна деталь, скрипт повинен бути вимкнений за умовчанням, як показано на скріншоті вище, це потрібно зробити вручну. Суть у тому, що коли сцена стартує, працювати скрипт не буде, тим самим заощаджуючи ресурси системи, але якщо гравець підійде до ліфта, скрипт запуститься, а потім знову відключиться, коли гравець вирушить далі у свої справи.