【Unity】カメラやゲームオブジェクトを揺らすユーティリティ
Friendship is Epic用に書いた、Unityでカメラを揺らすためのコードをアップしてみる。
Unityパッケージとデモ
Unityパッケージ
こちらからダウンロード
ご利用は自己責任でお願いいたします。
作者は上記パッケージを使用することによって生じた如何なる損害に対しても責任を負いません。
使い方
パッケージのScripts/Wiggler.csがゲームオブジェクトを揺らすためのユーティリティクラスです。
使い方は至ってシンプル。
カメラコンポーネントがアタッチされたゲームオブジェクトに組み込む例は以下の通り
using UnityEngine; using System.Collections; using Fie.Utility; /// <summary> /// カメラ揺らしテスト用の仮カメラ /// </summary> public class FooCamera : MonoBehaviour { private Wiggler wiggler; /// <summary> /// アクティブ化 /// </summary> void Start () { wiggler = new Wiggler(this.transform); } /// <summary> /// 通常更新後の毎フレーム更新 /// </summary> void LateUpdate () { // カメラの座標更新処理を書く場所 // スペースキーでウィグラーを初期化するようにしてみる if(Input.GetKeyDown(KeyCode.Space)) { // 0.5秒間に渡って10回の振動回数で揺らす。揺れ幅は全方向に対して1m wiggler.Initialize(0.5f, 10, Vector3.one); } // ウィグラーの更新 wiggler.UpdateWiggler(Time.deltaTime); } }
コンストラクタに揺らしたいオブジェクトのTransformを渡し、揺らしたいタイミングでWiggler.Initializeメソッドを呼んで下さい。
また、LateUpdate等の毎フレーム更新処理内でWigglerUpdateを呼んで下さい。
アルゴリズムの詳細は後日。