カメラを傾かせる動作はFPSでのぞく時などでよく見かけますよね。
今回はそんなカメラの動作の作り方を記述していこうと思います。
準備
今回は、「DOTween」というアセットを使っていきますのでダウンロードをしときましょう。
ここからダウンロード↓
DOTween (HOTween v2) | Animation Tools | Unity Asset Store
Use the DOTween (HOTween v2) tool from Demigiant on your next project. Find this & more animation tools on the Unity Ass...
ダウンロードをしたら「Package Manager」からインポートしましょう。
初めてインポートをすると下のようなウィンドウが出てきます。
「DOTween」のセットアップをしましょうねというメッセージですので早速セットアップをしていきましょう。「Open DOTween Utility Panel」というボタンを押しましょう。
するとセットアップパネルが開かれますのでそこの「Setup DOTween…」を押しましょう。
このボタンを押すとコンパイルが開始しますのでしばらく待ちます。
コンパイルが完了すると下の二つのボタンが押せるようになりますので「Apply」を押してセットアップを完了させます。
これで準備は完了です。
スクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class CameraRotate : MonoBehaviour
{
void Update()
{
if (Input.GetKey(KeyCode.A))
{
transform.DOLocalRotate(new Vector3(0, 0, 5),0.2f);
}
else if (Input.GetKey(KeyCode.D))
{
transform.DOLocalRotate(new Vector3(0, 0, -5), 0.2f);
}
else
{
transform.DOLocalRotate(new Vector3(0, 0, 0), 0.2f);
}
}
}
これは「A」「B」キーを押し続けることでそれぞれ左右に傾き、ボタンを離すと元の角度に戻るスクリプトになっています。
スクリプトが書けたらこれを傾けさせたいカメラにアタッチし実行してみましょう。
スクリプトのポイント
今回のスクリプトで重要なのはDOLocalRotate関数です。
transform.DOLocalRotate(new Vector3(傾かせたい角度),傾かせる速度);
こんな感じで、DOLocalRotate関数に傾かせたい角度の引数と傾かせる速度の引数を渡すことでスムーズにオブジェクトを傾かせることが可能です。
まとめ
このようなカメラの制御も「DOTween」を使えば簡単に作れますのでお勧めです。
コメント