溫故而知新。
記錄一下CrossFade的方法使用,主要用作跳轉到指定動畫的一個方法
先添加一個動畫控制器,把需要的動畫添加進去,不需要添加任何邏輯關係:
官方一個案例附帶的動畫,下面是控制代碼:
using UnityEngine;
public class Test : MonoBehaviour
{
public AnimationClip[] clips;
public Animator anim;
public int Index;
private void Update()
{
AnimationChange();
}
public void AnimationChange()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
if (Index > 0)
{
Index -= 1;
}
else
{
Index = clips.Length - 1;
}
Debug.Log(string.Format("CurrentClip:{0}", clips[Index].name));
}
if (Input.GetKeyDown(KeyCode.DownArrow))
{
if (Index < clips.Length - 1)
{
Index += 1;
}
else
{
Index = 0;
}
Debug.Log(string.Format("CurrentClip:{0}", clips[Index].name));
}
if (Input.GetKeyDown(KeyCode.Space))
{
ResetState();
anim.CrossFade(clips[Index].name, 0, 0, 0);
}
}
protected void ResetState()
{
transform.position = Vector3.zero;
transform.rotation = Quaternion.identity;
}
}
我把腳本掛在人物上,把動畫控制器和對應的動畫手動賦值,運行效果如下:
可以看到用這個方法可以達到直接跳轉到指定動畫,我這裏設置的參數是跳轉動畫從頭開始播放,具體大家可以嘗試一下。
歡迎加羣:4364930討論。