Зміст курсу
Бійцівська гра в Unity
Бійцівська гра в Unity
Завершити анімацію гравця
Анімація стрибка
Для стрибка ми будемо мати дві анімації: оскільки гравець буде стрибати, а потім падати, нам потрібно створити дві анімації для цього. Перехід між ними буде базуватися на "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
.
Дякуємо за ваш відгук!