Я работаю над игрой сверху вниз, и спрайт и анимация моего игрока закончены. Когда нет ввода, спрайт должен войти в состояние ожидания, но в том же направлении. У меня есть разные наборы анимации для движения и холостого хода, и я не знаю, как кодировать в режиме ожидания анимации для направления в разные стороны. Спрайт по-прежнему оживляет, но не перемещается после освобождения ввода.
Я не знаю, правильно ли я это объяснил, поэтому в качестве примера скажу, что игрок идет налево. Клавиша со стрелкой влево отпущена, поэтому больше нет ввода, и спрайт перестает двигаться. Однако анимация продолжается. Я хочу остановить эту анимацию и ввести другую анимацию, которая используется только тогда, когда нет ввода, но в то же время направлена в том же направлении, что и последний ввод. Вот мой код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f;
public Rigidbody2D rb;
public Animator animator;
Vector2 movement;
// Update is called once per frame
void Update()
{
movement.x = Input.GetAxisRaw("Horizontal");
movement.y = Input.GetAxisRaw("Vertical");
movement = movement.normalized;
if (movement != Vector2.zero)
{
animator.SetFloat("Horizontal", movement.x);
animator.SetFloat("Vertical", movement.y);
animator.SetFloat("Speed", movement.sqrMagnitude);
}
}
void FixedUpdate()
{
rb.MovePosition(rb.position + movement * moveSpeed * Time.fixedDeltaTime);
}
}
Спасибо за любую помощь!