【Unity】アニメーションを使った回転
Transformのローテーションプロパティを更新する方法が一般的ですが、アニメーションを使っても実現することができます
実行結果
まずは実行の様子を動画で見てみましょう
実装
アニメーション設定
回転するオブジェクトの設定
アニメーションパラメータ設定
アニメーションカーブの設定
コード
オブジェクトにアタッチするコードです
using UnityEngine;
public class RotateSpeed : MonoBehaviour
{
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
}
void Update()
{
if (Input.GetMouseButton(0))
{
animator.SetFloat("Speed", 0.5f);
return;
}
if (Input.GetMouseButton(1))
{
animator.SetFloat("Speed", 2.0f);
return;
}
animator.SetFloat("Speed", 1f);
}
}
解説
このコードは、Unityゲームエンジンでのアニメーション制御を行うためのスクリプトです。以下にコードの主要な部分を説明します
Animator animator;
Animator型の変数animator
を宣言しています。この変数は、後でアニメーションコントローラーとの連携に使用されます。
void Start()
Startメソッドは、スクリプトがアクティブになったときに一度だけ実行されます。このメソッドでは、animator
変数にアタッチされたゲームオブジェクトのAnimatorコンポーネントへの参照を取得しています。
void Update()
Updateメソッドは、フレームごとに呼び出され、ゲームの状態を更新するために使用されます。このメソッド内にゲームロジックが記述されています。
if (Input.GetMouseButton(0))
左クリック(マウスボタン0)が押されている場合、以下のコードブロックが実行されます。
animator.SetFloat("Speed", 0.5f);
Animatorの"Speed"パラメーターに0.5fの値を設定します。これにより、アニメーションの再生速度が変更されます。
if (Input.GetMouseButton(1))
右クリック(マウスボタン1)が押されている場合、以下のコードブロックが実行されます。
animator.SetFloat("Speed", 2.0f);
Animatorの"Speed"パラメーターに2.0fの値を設定します。これにより、アニメーションの再生速度が変更されます。
アニメーションの再生速度を変更しない場合、デフォルトで以下のコードが実行されます。
animator.SetFloat("Speed", 1f);
Animatorの"Speed"パラメーターに1.0fの値を設定します。
ディスカッション
コメント一覧
まだ、コメントがありません