using System.Collections;
public class WaitForEndOfAnim : IEnumerator
{
AnimationState m_animState;
public WaitForEndOfAnim(AnimationState animState)
{
m_animState = animState;
}
//-- IEnumerator Interface
public object Current
{
get
{
return null;
}
}
//-- IEnumerator Interface
public bool MoveNext()
{
return m_animState.enabled;
}
//-- IEnumerator Interface
public void Reset()
{
}
}
2、using UnityEngine;
using System.Collections;
public class UnitTest : MonoBehaviour
{
public Animation anim;
void OnGUI()
{
if (GUILayout.Button("启动"))
{
StartCoroutine(DoTest());
}
}
IEnumerator DoTest()
{
AnimationState animAttack = anim["Take1"];
animAttack.speed = 0.3f;
AnimationState animHit = anim["Take2"];
animHit.speed = 0.3f;
AnimationState animDie = anim["Take3"];
animDie.speed = 0.3f;
anim.Play(animAttack.name);
Debug.Log(animAttack.name);
yield return new WaitForEndOfAnim(animAttack);
anim.Play(animHit.name);
yield return new WaitForEndOfAnim(animHit);
anim.Play(animDie.name);
yield return new WaitForEndOfAnim(animDie);
}
}