Зміст курсу
Бійцівська гра в Unity
Бійцівська гра в Unity
Завершити анімацію гравця
Анімація стрибка
Для стрибка ми будемо мати дві анімації: оскільки гравець буде стрибати, а потім падати, нам потрібно створити дві анімації для цього. Перехід між ними буде базуватися на "y швидкості" гравця; якщо y позитивний, він стрибає, а якщо y негативний, він падає. Ми можемо отримати y швидкість з компонента Rigidbody2D, прикріпленого до гравця.
Цей код призначає значення для параметра переходу між стрибком і падінням.
Пояснення коду
Цей рядок перевіряє, чи натиснута клавіша Пробіл (Input.GetKeyDown(KeyCode.Space)
), чи гравець на землі (isGrounded
), і чи гравець не атакує в даний момент (animator.GetBool("isAttacking") == false
). Якщо всі умови виконані, виконається наступний блок коду.
Цей рядок додає силу вгору до компонента Rigidbody (rb
), прикріпленого до гравця, імітуючи стрибок. Сила застосовується у напрямку вгору (Vector2.up
) з величиною, визначеною jumpForce
, і застосовується імпульсивно (ForceMode2D.Impulse
).
Цей рядок встановлює булевий параметр "isJumping" в компоненті Animator на true, запускаючи анімацію стрибка.
Цей рядок перевіряє, чи гравець зараз стрибає (animator.GetBool("isJumping") == true
), чи вертикальна швидкість гравця негативна (rb.velocity.y < 0
), і чи гравець на землі (isGrounded
). Якщо всі умови виконані, виконається наступний блок коду.
Цей рядок встановлює булевий параметр "isJumping" в компоненті Animator на false, вказуючи, що гравець завершив стрибок і падіння та змінить свою анімацію на стан спокою.
Цей рядок випускає промінь вниз від позиції ніг гравця (playerFeet.position
), щоб визначити, чи гравець знаходиться на землі. Він повертає true, якщо промінь перетинається з будь-яким колайдером у шарі землі на відстані до 0.1 одиниці, відповідно оновлюючи змінну isGrounded
.
Дякуємо за ваш відгук!