今回やること
画像のようにキーをおしたらズームするようになります
照準の画像も通常時とズーム時で変わるようにします
フォートナイトみたいなゲームでよく使われますね
目次
照準の作成
照準の画像が無い場合はこちらからダウンロードしてください
Create → UI → Imageをおします
作成したImageを選択し、座標を0,0,0にし、通常時の照準をSourceImageにドラッグ&ドロップします
続いて、同様にCreate → UI → Imageをおします
同様に作成したImageを選択し、座標を0,0,0にし、ズーム時の照準をSourceImageにドラッグ&ドロップします
ズームするようにプログラミングする
Scopeスクリプトの作成
Create → C#Scriptをおします
スクリプトの名前をScopeにし、ダブルクリックして編集画面を開きます
入力するスクリプト
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Scope : MonoBehaviour { private Camera cam;// ズームするカメラ public GameObject AimingA;// 通常の照準 public GameObject AimingB;// ズームした時の照準 // Start is called before the first frame update void Start() { cam = GetComponent();// Cameraの値を取得 AimingA.SetActive(true);// 通常の照準を表示する AimingB.SetActive(false);// ズームした時の照準を非表示にする } // Update is called once per frame void Update() { if(Input.GetKeyDown(KeyCode.Space))// もし、スペースキーがおされたら、 { cam.fieldOfView = 20;// カメラのFieldOfViewを20にする AimingA.SetActive(false);// 通常の照準を非表示にする AimingB.SetActive(true);// ズームした時の照準を表示する } if (Input.GetKeyUp(KeyCode.Space))// もし、スペースキーが離されたら、 { cam.fieldOfView = 60;// カメラのFieldOfViewを60にする AimingA.SetActive(true);// 通常の照準を表示する AimingB.SetActive(false);// ズームした時の照準を非表示にする } } }
入力したらMainCameraにScopeスクリプトをドラッグ&ドロップします
MainCameraを選択し、AimingAには通常時の照準、AimingBにはズーム時の照準をドラッグ&ドロップします
テストプレイをすると
スペースキーをおしたら、照準が切り替わってズームし、離すと元に戻ります
コメント