Tips

【Unity】カメラのズームと倍率の制御について【スナイパーライフル】

【Unity】カメラのズームと倍率の制御について【スナイパーライフル】

Unityでカメラをズームする


スナイパーライフルのスコープっぽい感じでカメラをズームする方法を紹介します。

カメラ関連記事
【スナイパーライフル】カメラのズームと倍率の制御について
【接写】マウスホイールでカメラの向きにドリーイン・ドリーアウトさせる
【FPS向け】主観カメラへの切り替えと、プレイヤーの移動方法について

カメラの位置は変えずに、Field Of Viewの値を変更して視野角を絞り込みます。

© Unity Technologies Japan/UCL

照準関連記事
【シューティング】Rayを使って照準の色を変える

※使用しているUnityのバージョンは5.6.1f1です。
[Unity_317×90]

スクリプトから視野角を変更する


主観視点のカメラに下記のスクリプトを適用します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using UnityEngine;
 
public class FirstPersonCamera : MonoBehaviour {
    private Camera cam;
 
    void Start () {
        cam = GetComponent<Camera>();
    }
 
    void Update() {
        float scroll = Input.GetAxis("Mouse ScrollWheel");
        float view = cam.fieldOfView - scroll ;
 
        cam.fieldOfView = Mathf.Clamp(value : view, min : 0.1f, max : 45f);
    }
}

スクロールはInput.GetAxis(“Mouse ScrollWheel”)で取得します。
マウスホイールをスクロールする向きによって正負が変化します。(何もしなければ0が取得される)
fieldOfViewは、値を小さくすると視野が狭くなり、カメラワーク的にはズームインとなります。
Mathf.Clampは、第1引数で受け取った値が第2引数と第3引数の範囲を超えないように値を返します。
この関数でfieldOfViewの値がマイナスになったり、極端に大きい値になることを制御します。

以上です。

ゲーム制作関連のオススメ連載リンク

とっても手軽なゲーム制作体験!
Unityゲーム開発基礎

実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発

Recent News

Recent Tips

Tag Search