Animationコンポーネントには、
前回のアニメーションが終了してから、
次のアニメーションを再生する便利な関数があります。
それはAnimationのクラスが持つPlayQueued()という関数です。
この関数は前回のアニメーションが終了した際に、
アニメーションを再生するために使用します。
引数にはアニメーション名, QueueMode, PlayModeが必要となります。
ですが、QueueModeとPlayModeの2つはデフォルトで渡される値があるので
必要とされるのはアニメーション名の1つです。
QueueModeはデフォルトで他のAnimationClipが全て停止した後に再生する
QueueMode.CompleteOthersが渡されます。
PlayModeはデフォルトで同じレイヤーのアニメーションを停止させる
PlayMode.StopSameLayerが渡されます。
例えば、上に動くAnimationClip_UpとY軸へ回転するAnimationClip_Rotateが
存在するとして上へ移動した後にY軸へ回転するアニメーションのために
Aを再生し終えた後にBを再生したい時などに役立ちます。
実際の例として、2つのAnimationClipを再生する例を用意しました。
このスクリプトは用意した2つのAnimationClipを再生するスクリプトです。
using UnityEngine;
using System.Collections;
/*===============================================================*/
/**
* PlayQueued関数の使用例
* 2014年9月9日 Buravo
*/
public class Test_PlayQueued : MonoBehaviour {
#region パブリック変数
/*===============================================================*/
/**
* @brief 上方向に移動するアニメーションクリップ
*/
public AnimationClip clip_up;
/**
* @brief 回転するアニメーションクリップ
*/
public AnimationClip clip_rotate;
/*===============================================================*/
#endregion
/*===============================================================*/
/**
* @brief 初期化
*/
void Start () {
animation.Play(clip_up.name);
// PlayQueued(string animation,
// QueueMode queue = QueueMode.CompleteOthers,
// PlayMode mode = PlayMode.StopSameLayer)
animation.PlayQueued(clip_rotate.name);
}
}
挙動は下の画像みたいに動きます。

アクションゲームの邪魔な敵や動く足場みたいに、
規則的な動きをさせたい時に役立ちます。