У меня есть этот скрипт, и в обновлении void не имеет значения, что сначала для перехода назад или для запуска, он всегда заставляет аниматор воспроизводить анимацию назад, идти или бежать, он воспроизводит анимацию наполовину или полностью, и он воспроизводит часть состояния простоя без его вызова, что означает, что ваш палец все еще находится на кнопке включения, поэтому он все равно должен воспроизводить анимацию вперед/назад снова и снова.
вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playerController : MonoBehaviour {
public float moveSpeed = 10f;
public float turnSpeed = 50f;
Animator anim;
// Use this for initialization
void Start () {
anim = GetComponent ();
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.S)) {
anim.SetBool ("isIdle", false);
anim.SetBool ("isWalkingBack", true);
transform.Translate (-Vector3.forward * moveSpeed * Time.deltaTime);
}
else
{
anim.SetBool ("isIdle", true);
anim.SetBool ("isWalkingBack", false);
}
if (Input.GetKey (KeyCode.W)) {
anim.SetBool ("isRunning", true);
anim.SetBool ("isIdle", false);
transform.Translate (Vector3.forward * moveSpeed * Time.deltaTime);
}
else
{
anim.SetBool ("isRunning", false);
anim.SetBool ("isIdle", true);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/451 ... d-animator