2017-07-06 39 views
1

如何檢查一個帶動畫的對象是否處於空狀態?如何檢查一個空狀態的對象?

我需要禁用使用SETACTIVE(假)的對象,這樣:

  • 如果對象是在狀態之間的轉換 - 完成過渡,然後將其禁用。

  • 如果對象處於默認空狀態 - 立即禁用它。

此代碼的工作,如果對象是處於轉型期,但如果是在空不工作狀態:

MyObject.GetComponent<Animator>().IsInTransition(0) 
+0

測試null,並確保在對象完成每個狀態之前不要將對象設置爲值。如果您正在運行異步,則將對象置於鎖定狀態,同時在狀態之間轉換。 – jdweng

回答

1

確定這裏就是我做的。

我假設你知道要禁用在對象的「默認的空狀態」的名稱。

聲明具有「默認空狀態」作爲一個字符串靜態int變量這樣的散列:

static int VAR-NAME = Animator.StringToHash("Base.NAMEOFSTATE"); 

這是假設您的基礎層被稱爲「基礎」。

在更新(

的話),把當前狀態的變量是這樣的:

currentState = anim.GetCurrentAnimatorStateInfo(0); 

,然後使用IF語句來檢查,如果你的「默認爲空狀態」等於這樣的當前狀態:

if (currentState.nameHash == VAR-NAME){ 
     Debug.Log("Do Stuff Here"); 
} 

玩得開心編碼!

+1

非常感謝! :) – Rumata