【Unity】uGUIでAnimatorを使う:ステートを繋げてトリガーを持たせる

uGUIでAnimatorを使う の投稿一覧

Animatorウィンドウからステート遷移を定義し、また遷移条件を指定できます。

環境

  • OSX Yosemite v10.10.5
  • Unity v5.1.2f1

今回の流れ

  1. AnimationControllerを作成する
  2. AnimationClipを作成する
  3. Animatorコンポーネントをアタッチする
  4. 遷移先のステートを作成し、トランジションで接続する
  5. トランジションにコンディションを追加する
  6. 実行する
前提

1,2,3については先日の投稿を参照してください。
前提知識と操作

アニメーションを再生したい対象のGameObjectにAnimatorコンポーネントが追加され、Controllerプロパティに指定されたAnimationControllerにAnimationClipが指定され、Entryからトランジションが伸びているステートが存在していることを確認してください。

遷移先のステートを作成し、トランジションで接続する

Animatorウィンドウで新たにステートを作成します。
Animatorウィンドウで新たにステートを作成するには、何も無いところを右クリックし、CreateState > Empty を選択します。

新たに作成したステートを今回のアニメーション遷移の終点とするため、Entryに接続されたステートを右クリックしてMakeTransitionします。
MakeTransitionを選択すると、白線がカーソルと連動します。そのまま終点となるステートを選択すると、トランジションが接続されます。

トランジションにコンディションを追加する

トランジションが接続されただけの状態だと、遷移先が指定されただけです。
遷移の条件を設定するには、条件となるパラメータを作成してトリガーとして設定する必要が有ります。

まず、Animatorウィンドウの左上にParametersを選択し、+ボタンを押してパラメータを作成します。
新たに作成したパラメータには、次のものを設定できます。

  1. パラメータの名前
  2. パラメータの型
  3. 初期値

今回は、パラメータの型をBoolにします。
チェックボックスにチェックされていない状態で作成されているはずで、この状態は初期値がfalseであることを示します。

次に、トリガーを設定します。
Animatorウィンドウからトランジションを選択してInspectorウィンドウに表示されたトランジションのConditionsプロパティにある+ボタンを押します。
Conditionが作成されるので、作成したパラメータを指定して値をtrueにします。
ステートマシンは、ここで指定したパラメータが指定した値になっていれば、トランジションを介した遷移を許可します。

実行する

ビルド、実行をするとEntryに接続されたステートにひも付けられたAnimatinClipの設定からアニメーションが再生されますが、トランジションが遷移を堰き止めるため、終点となるステートは再生されません。
終点となるステートのアニメーションを再生するには、実行中にコンディションで指定したパラメータの値をAnimatorウィンドウでfalseからtrueに変更、UI的にはチェックボックスにチェックを入れればokです。