1、
using UnityEngine; using System.Collections; public class AnimatorMove : MonoBehaviour { public float DirectionDampTime = .25f; private Animator animator; //声明一个动作机变量 animator void Start () { animator = GetComponent<Animator>(); } void Update () { if (animator == null) return; //return后就不会执行下面操作 AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);// 判断动画是否播放完成 if (stateInfo.IsName("Base Layer.Run")) { if (Input.GetButton("Fire1")) animator.SetBool("Jump", true); } else animator.SetBool("Jump", false); if (Input.GetButtonDown("Fire2") && animator.layerCount >= 2) animator.SetBool("Hi", true); else animator.SetBool("Hi", false); float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); animator.SetFloat("Speed", h * h + v * v); animator.SetFloat("Direction", h, DirectionDampTime, Time.deltaTime); } }
2、
private Animator animator; void Start() { animator = this.GetComponent<Animator>(); } void Update() { AnimatorStateInfo info = animator.GetCurrentAnimatorStateInfo(0); // 判断动画是否播放完成 if( info.normalizedTime >= 1.0f) { DoSomething(); } }