Tips

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

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

Unityでカメラをズームする


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

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

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

© Unity Technologies Japan/UCL

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

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

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


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

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