モチベーション
Animatorは使わないでスクリプトからシンプルにアニメーションを再生したい。
手順
- 必ず最初にオブジェクトにAnimationコンポーネントをアタッチ
最初にAnimationコンポーネントを作らないと2の手順で勝手にAnimatorコンポーネントがアタッチされたりAnimatorControllerファイルが生成されるため、必ず最初にオブジェクトにAnimationコンポーネントをアタッチする。
- Hierarchyでオブジェクトを選択したまま、AnimationウインドウのCreateを選択する
Animation Clipが作られると同時に、AnimationコンポーネントのAnimationsにAnimation Clipファイルが勝手に設定される。(このままでOK)
既存のAnimationクリップを使用する場合はAnimationコンポーネントのAnimationsにAnimation Clipファイルをセットした後、手順4へ。
- アニメーションを作る
白い木が回転して攻撃するTreeAttackアニメーションを作った
- Play Automaticallyをオフにする
実行時に勝手に再生されないようにPlay Automaticallyをオフ
- スクリプトを記述
キーボードのスペースキーを押すたびにアニメーションが再生されるスクリプトを書いてオブジェクトにアタッチする。
anim.Play()
の引数には Animation Clip
ファイル名を入力する。
Animation anim;
void Start()
{
anim = gameObject.GetComponent<Animation>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
anim.Play("TreeAttack");
}
}
- 実行して動作を確認する
スペースキーを押すたびにアニメーションが再生される。
複数のアニメーションを制御したい場合は Animation
コンポーネントのAnimations
に Animation Clip
を追加したあと、anim.Play()
の引数に Animation Clip
名を指定すればOK。