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


Unityでカメラをズームする


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

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

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

© Unity Technologies Japan/UCL

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

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

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


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

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認定試験対策】Unity 練習問題 10 – Rigidbody –
【Unityプログラミング力向上】C# 練習問題 7

記事一覧にもどる

  • このエントリーをはてなブックマークに追加

PAGE TOP