Я делаю анимацию ходьбы на своем персонаже. Но всякий раз, когда я нажимаю на кнопки, такие как «UpArrow» и «LeftArrow» одновременно, он работает в течение этого времени, а затем запутывает ВСЕ анимации. Даже простые команды, такие как «UpArrow», не работают. Анимация просто зависает. Я пытался сказать, что если «UpArrow» и «LeftArrow» не работают в одном и том же состоянии, чтобы воспроизвести анимацию «strafeleft», но это не работает. Вот мой сценарий
void Start()
{
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{ // Move
// Move Right, Left
float Axis = Input.GetAxis("Horizontal") * speed;
//Move Front, Baek
float translation = Input.GetAxis("Vertical") * speed;
translation *= Time.deltaTime;
Axis *= Time.deltaTime;
transform.Translate(Axis, 0, 0);
transform.Translate(0, 0, translation);
// animate go front
if (Input.GetKeyDown(KeyCode.UpArrow))
{
anim.SetTrigger("Towalking");
}
// animate iShtop
if (Input.GetKeyUp(KeyCode.UpArrow) || Input.GetKeyUp(KeyCode.LeftArrow) || Input.GetKeyUp(KeyCode.RightArrow) || Input.GetKeyUp(KeyCode.DownArrow) )
{
anim.SetTrigger("Tostop");
}
// animate go left
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
anim.SetTrigger("Tostrafeleft");
}
// animate go right
if (Input.GetKeyDown(KeyCode.RightArrow))
{
anim.SetTrigger("Tostraferight");
}
// animate go baek
if (Input.GetKeyDown(KeyCode.DownArrow))
{
anim.SetTrigger("Towalkback");
}
// animate go front,left
if(Input.GetKeyDown(KeyCode.UpArrow) && Input.GetKeyDown(KeyCode.LeftArrow))
{
anim.SetTrigger("Tostrafeleft");
}
}