判斷動畫狀態機當前播放的動畫。
阿新 • • 發佈:2019-02-09
Animator thisAni;//自身的動畫控制器
private void Awake()
{
//獲取自身的動畫控制器
thisAni = this.GetComponent<Animator>();
}
float speed = 0;
public int tempNumber = 0;
private void Update()
{
if (Input.GetKey(KeyCode.W))
{
speed += Time.deltaTime * 0.1f;
thisAni.SetFloat("speed", speed);
speed = Mathf.Clamp01(speed);
}
////設定索引圖層的權重
//thisAni.SetLayerWeight(2, 1);
//AnimatorStateInfo 動畫層狀態資訊類
//GetCurrentAnimatorStateInfo 獲取動畫控制器中指定層的狀態資訊
AnimatorStateInfo info = thisAni.GetCurrentAnimatorStateInfo(0);
//獲取當前動畫狀態的雜湊值
tempNumber = info.shortNameHash;
//這句程式碼只是將字串轉換成雜湊值 其他沒什麼卵用
print(Animator.StringToHash("Blend Tree"));
//判斷當前狀態是否為跑
print("當前狀態:" + Animator.StringToHash("Run").Equals(tempNumber));
}
private void Awake()
{
//獲取自身的動畫控制器
thisAni = this.GetComponent<Animator>();
}
float speed = 0;
public int tempNumber = 0;
private void Update()
{
if (Input.GetKey(KeyCode.W))
{
speed += Time.deltaTime * 0.1f;
thisAni.SetFloat("speed", speed);
speed = Mathf.Clamp01(speed);
}
////設定索引圖層的權重
//thisAni.SetLayerWeight(2, 1);
//AnimatorStateInfo 動畫層狀態資訊類
//GetCurrentAnimatorStateInfo 獲取動畫控制器中指定層的狀態資訊
AnimatorStateInfo info = thisAni.GetCurrentAnimatorStateInfo(0);
//獲取當前動畫狀態的雜湊值
tempNumber = info.shortNameHash;
//這句程式碼只是將字串轉換成雜湊值 其他沒什麼卵用
print(Animator.StringToHash("Blend Tree"));
//判斷當前狀態是否為跑
print("當前狀態:" + Animator.StringToHash("Run").Equals(tempNumber));
}