2017-07-06 12 views
1

アニメーターを持つオブジェクトが現在空の状態になっているかどうかをチェックする方法は?オブジェクトが空の状態にあるかどうかをチェックする方法は?

は私がなるように、(偽)のsetActiveを使用してオブジェクトを無効にする必要があります。オブジェクトは、状態間の遷移である

  • 場合 - の移行を完了し、それを無効にします。

  • オブジェクトがデフォルトの空の状態にある場合 - すぐに無効にします。オブジェクトが過渡期にあるが、それは空の状態である場合に動作しない場合

このコードは動作します:

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

nullをテストし、各状態が終了するまでオブジェクトを値に設定しないようにしてください。 Asyncを実行している場合、状態間の遷移中にオブジェクトをLock状態にします。 – jdweng

答えて

1

[OK]をここで私はそれをやった方法です。

私はあなたがあなたがあなたのオブジェクトを無効にしたいあなたの「デフォルトの空の状態」の名前を知っていると仮定しています。

をする文字列として「デフォルトの空の状態を」持っている静的な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

関連する問題