【Unity】カメラのズームと倍率の制御について【スナイパーライフル】
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者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】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発