1

私は2つのアニメーションを1つにまとめて再生しようとしています(各アニメーションはメインカメラの2つの別々のパスです)。私の研究から、次のものを使用する必要があると思います:

    // Update is called once per frame
void Update () {

    animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
    animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);

}

ただし、このコードをカメラにアタッチしても、ゲームはまだ最初のパスしか再生しません。異なるパス間で 0.5 秒の遅延が発生するようにパスを作成しました。カメラのアニメーション コンポーネントに両方のアニメーションがあり (添付の写真を参照)、なぜこれが機能しないのか困惑しています。

何か不足していますか?

ここに画像の説明を入力

4

1 に答える 1

3

user2025312 が述べたように、各フレームでコードを呼び出しています。つまり、各フレームで最初のアニメーションをすぐに再生するように指示し、2 番目のアニメーションをキューに入れます。それはうまくいきません。

やりたいことに応じて、いくつかのオプションがあります。2 つのアニメーションをループで連続再生したいとします。あなたができることは次のとおりです。

void Update () {
    if (!animation.isPlaying)
    {
        animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
        animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);
    }
}

簡単に理解できるように、これはアニメーションが再生されているかどうかをチェックし、そうでない場合は 2 つをキューに入れ、最初のアニメーションをすぐに再生します。それは 内でうまくいきますUpdate()

ただし、アニメーション シーケンスを 1 回だけ (またはトリガーで) 再生する場合は、2 つの行をStart()または選択したメソッド内に配置します。

void Start () {
    animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
    animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);
}

それはうまくいくはずです。そうでない場合は、アニメーションが個別に機能することを確認してください。

于 2013-08-02T19:23:59.097 に答える