【Unity】アニメーションの再生位置を設定する

Unityにおいて、アニメーションの再生位置を任意に設定するには、以下のようなコードを使用します。

コードで設定する方法

// アニメーションコントローラーの取得
Animator animator = GetComponent<Animator>();

// アニメーションの再生位置を設定する
animator.Play("AnimationName", -1, normalizedTime);

上記のコードでは、Animatorコンポーネントを取得し、再生位置を設定するために Play メソッドを使用しています。Play メソッドの第一引数には、再生したいアニメーションクリップの名前を指定します。第二引数には、再生速度を指定します。負の値を指定すると、再生速度が逆転します。第三引数には、アニメーションの正規化された再生時間(0から1の間)を指定します。この値を使用すると、アニメーションを任意の再生位置から再生できます。

例えば、アニメーションの途中から再生を開始するには、normalizedTimeに0.5を指定すると、アニメーションが50%の位置から再生されます。

サンプル

プレイヤーの速度が0.1未満の時、アニメーションの最初の位置に戻す場合

// プレイヤの速度
float speedx = Mathf.Abs(this.rigid2D.velocity.x);

if (speedx < 0.1f)
{
    // アニメーションの再生位置を設定する
    animator.Play("Walk", 0, 0);
}

Unity,学習

Posted by hidepon