Unityの機能であるMecanim を使って立ち(Stand) / 走る(Run)の2つのアニメーションを切り替えます。 事前に二つ以上のアニメーションが作成済みであること。 アニメーションの作り方は049 スプライトアニメーションの表示参照。
Animation Controllerはアニメーションファイル(.anim)作成時に自動で作成されます。
Animation Controller選択すると構造やパラメータが表示されます。(Animation View)
オレンジ色になっている「Stand」が最初に再生されるデフォルトのアニメーションです。 この「Stand」や「Run」をAnimation State と呼びます。
「Stand」のAnimation Stateを右クリック → Make Transition で遷移先を指定する矢印が現れます。 この状態で遷移先の「Run」Animation State を選択して関連付けます。
再生するとアニメーションが「Stand」から「Run」へと遷移します。
遷移先をした矢印をクリックしてInspectorのConditionsから条件を設定できます。 初期設定はExit Time: 1.00となっていたので一定時間経過した後Runアニメーションに遷移していました。 キーボードの左右のキーが押されたらRunアニメーションに遷移する様修正します。
Animation Parameter は遷移条件に使うパラメータです。Animation Parameterの追加は Animation View にあるParametersの+を選択して追加します。
bool 型でisRunパラメータを追加しました。追加するとConditionsに項目が追加されます。
isRunがtrueになった時「Run」アニメーションに遷移されます。
新規にスクリプトを作成して、Player にアタッチします。
using UnityEngine; using System.Collections; public class PlayerScript : MonoBehaviour { Animator anim; void Start() { anim = GetComponent( "Animator" ) as Animator; } void Update () { // キーボードの左右キーでRunアニメーションを再生する。 if ( Input.GetKey( KeyCode.LeftArrow ) || Input.GetKey( KeyCode.RightArrow ) ) { anim.SetBool("isRun", true ); } else { anim.SetBool("isRun", false ); } } }
GetComponent でAnimatorコンポーネントを取得してSetBoolで値を設定しています。 これでRunアニメーションに切り替え再生されます。