Рух камери за персонажем 2d платформер - nullcode studio, ігри, unity, скрипти

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

Щож, створюємо скрипт CameraFollow2D:


damping - регулюємо плавність руху камери.
offset - додати зміщення по вертикалі і горизонталі.
faceLeft - якщо спочатку персонаж "дивиться" вліво, ставимо галочку.

Щоб все працювало, той об'єкт, яким керує гравець, повинен мати стандартний тег Player. Варто звернути увагу на функцію FindPlayer. до неї потрібно звертатися кожен раз, коли використовується респаун об'єкта, крім того, враховується і те, в який бік "дивиться" об'єкт за замовчуванням, наприклад, FindPlayer (true), якщо "дивиться" вліво. Тут важливо розуміти, що суть не в тому, куди дивиться персонаж під час переміщення, а то, в який бік рухається об'єкт, вліво або вправо. Якщо ви хочете жорстку прив'язку, щодо особи, тоді треба видалити всі рядки з обробкою змінних lastX і currentX. А змінну faceLeft зробити статичної:


І змінювати її, через скрипт управління персонажа.

Припустимо, ось так:

Схожі статті