Невелика дрібниця для початківців ділків ігрової індустрії. Будемо вчиться робити двері, звичайні класичні двері, плюс, це можна так само віднести і до прикладу шаф, а так же подібних речей. При цьому, розглянемо два варіанти управління дверима. У першому випадки, без фізики, відкриття і закриття, регулюється через скрипт, що в принципі підійде для багатьох ігор. Другий варіант, контроль під фізикою, а гравець управляє замком двері, якщо замок відкритий, то досить трохи штовхнути і двері розчиняться. Плюс, в скрипті реалізована можливість закрити двері назад на замок. Крім того, в обох випадках врахуємо оптимізацію скриптів.
Ну нам саме собою потрібна модель двері вже готова. Потім, додаємо на сцену порожній об'єкт, під ім'ям Door скидаємо позицію по нулях, і закидаємо модельку двері в цей об'єкт, так само скидаємо позицію. Двері тепер дочірній об'єкт:
Зверніть увагу, що модель двері повинен бути правильно розгорнуто в просторі щодо осей. Щоб відкривалася вона в протилежний зміст, щодо направлення осі Z (синього кольору) на скріншоті.
Створюємо в Door ще один дочірній об'єкт, назвемо його Anchor і пересуваємо цей якір в те місце, де повинні бути дверна петля:
Після, робимо модель двері дочірньої до Anchor.
До речі кажучи, на моделі дверей повинен бути коллайдер і тег, наприклад - Door. Колайдери на дверний рамці потрібно налаштувати так, щоб вони не взаємодіяли з дверима. Це потрібно для нормальної роботи фізики двері.
Вішаємо на модель двері скрипт Door:
На камеру гравця вішаємо скрипт DoorControl:
Робимо теж-саме, але використовуємо інші скрипти.
Замість Door, вішаємо PhysicsDoor:
А замість DoorControl, чіпляємо на камеру PhysicsDoorControl:
Щоб фізика працювала, залишилося зробити ще кілька дрібниць. Переходимо до дверей і налаштовуємо компонент Hinge Joint:
Anchor - регулюємо позицію і ставимо його в теж місце, де наша дверна петля.
Axis - вибираємо вісь Y.
Включаємо Use Limits і ставимо потрібні значення.
Тепер фізика двері буде працювати, якщо все правильно налаштовано.
Завантажити і подивитися в роботі:
Ви не можете завантажувати файли з нашого сервера