Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завершити анімацію гравця | Система анімації Unity
Бійцівська гра в Unity
course content

Зміст курсу

Бійцівська гра в Unity

Бійцівська гра в Unity

1. Система анімації Unity
2. Поведінка гравця
3. Поведінка Ворога
4. Покращення гри
5. Покращення гри Flappy Bird

book
Завершити анімацію гравця

Анімація стрибка

Для стрибка ми будемо мати дві анімації: оскільки гравець буде стрибати, а потім падати, нам потрібно створити дві анімації для цього. Перехід між ними буде базуватися на "y швидкості" гравця; якщо y позитивний, він стрибає, а якщо y негативний, він падає. Ми можемо отримати y швидкість з компонента Rigidbody2D, прикріпленого до гравця.

csharp

Цей код призначає значення для параметра переходу між стрибком і падінням.

Пояснення коду

csharp
csharp

Цей рядок перевіряє, чи натиснута клавіша Пробіл (Input.GetKeyDown(KeyCode.Space)), чи гравець на землі (isGrounded), і чи гравець не атакує в даний момент (animator.GetBool("isAttacking") == false). Якщо всі умови виконані, виконається наступний блок коду.

csharp

Цей рядок додає силу вгору до компонента Rigidbody (rb), прикріпленого до гравця, імітуючи стрибок. Сила застосовується у напрямку вгору (Vector2.up) з величиною, визначеною jumpForce, і застосовується імпульсивно (ForceMode2D.Impulse).

csharp

Цей рядок встановлює булевий параметр "isJumping" в компоненті Animator на true, запускаючи анімацію стрибка.

csharp

Цей рядок перевіряє, чи гравець зараз стрибає (animator.GetBool("isJumping") == true), чи вертикальна швидкість гравця негативна (rb.velocity.y < 0), і чи гравець на землі (isGrounded). Якщо всі умови виконані, виконається наступний блок коду.

csharp

Цей рядок встановлює булевий параметр "isJumping" в компоненті Animator на false, вказуючи, що гравець завершив стрибок і падіння та змінить свою анімацію на стан спокою.

csharp

Цей рядок випускає промінь вниз від позиції ніг гравця (playerFeet.position), щоб визначити, чи гравець знаходиться на землі. Він повертає true, якщо промінь перетинається з будь-яким колайдером у шарі землі на відстані до 0.1 одиниці, відповідно оновлюючи змінну isGrounded.

question mark

Що представляє raycast в Unity?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 6
Ми дуже хвилюємося, що щось пішло не так. Що трапилося?
some-alt