0

Unity/コーディングは初めてで、各ステップの遅延時間を調整できる単純な 2 ステップ アニメーションを作成しようとしています。私のゲームには、「上へ」と「下へ」の 2 つのアニメーションを使用するリフトがあります。

私は列挙子を使用してアニメーションを再生していますが、これは私がこれまでに持っているものです:

IEnumerator Go()
{
    while(true)
    {
        GetComponent<Animation>().Play ("Up");
        yield return new WaitForSeconds(delayTime);
        break;
        GetComponent<Animation>().Play ("Down");
        yield return new WaitForSeconds(delayTime);
        break;
    }
}

全体を 1 つのモーションとしてアニメーション化できることは理解していますが、その場で遅延時間を調整できるようにしたいと考えています。私の目標は、この 2 つを連続してアニメ化することです。上へ、そして下へ。現時点では、リフトが上昇し、そこにとどまっています。私は何を間違っていますか?

助けてくれてありがとう!

4

1 に答える 1

0

break-clause を削除します。

IEnumerator Go()
{
    while(true)
    {
        GetComponent<Animation>().Play ("Up");
        yield return new WaitForSeconds(delayTime);
        GetComponent<Animation>().Play ("Down");
        yield return new WaitForSeconds(delayTime);
    }
}

これで、2 つのアニメーションがループするはずです。元のコードでは、break ステートメントが実行をループから飛び出させているPlayため、"Down" の for が呼び出されることはなく、関数の実行は終了します。

リフトを一度だけ上下させたい場合は、while ループを削除する必要があります。

于 2015-05-30T06:51:22.667 に答える