від користувача і масштабування його за швидкістю руху персонажа.
Перевірка стану на землі:
if (isGrounded) { jumpsRemaining = maxJumps; isJumping = false; }: Перевірка, чи персонаж перебуває на землі, і скидання кількості залишених стрибків, якщо це так. Також встановлення стану стрибка в false.
Стрибок:
if (jumpsRemaining > 0 && Input.GetKeyDown(KeyCode.Space) && !isJumping) { ... }: Перевірка, чи є залишені стрибки, чи була натиснута клавіша простору і чи персонаж не в стані стрибка. Якщо умова виконується, то відбувається стрибок.
Анімація:
animator.SetFloat("HorizontalMove", Mathf.Abs(HorizontalMove));: Передача значення горизонтального руху в аніматор для управління анімацією персонажа.
animator.SetBool("Jumping", !isGrounded);: Встановлення параметра аніматора "Jumping" в true, якщо персонаж не на землі, тобто в стані стрибка.
Рух:
Vector2 targetVelocity = new Vector2(HorizontalMove * 10f, rb.velocity.y);: Визначення цільової швидкості персонажа вздовж вісі X.
rb.velocity = targetVelocity;: Встановлення швидкості руху персонажа.
Переворот:
if (HorizontalMove < 0 && FacingRight) { Flip(); } else if (HorizontalMove > 0 && !FacingRight) { Flip(); }: Перевірка напрямку руху і обертання персонажа, якщо напрямок змінився.
Метод Flip():
private void Flip() { ... }: Змінює напрямок обличчя персонажа, використовуючи зміну знаку масштабу по осі X.
Метод CheckGround():
private void CheckGround() { ... }: Викликається для перевірки, чи персонаж перебуває на землі шляхом використання Physics2D.OverlapCircleAll для області під ногами персонажа.