今回やること
画像のようにキーをおしたらズームするようになります
照準の画像も通常時とズーム時で変わるようにします
フォートナイトみたいなゲームでよく使われますね
目次
照準の作成
照準の画像が無い場合はこちらからダウンロードしてください
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>();// 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にはズーム時の照準をドラッグ&ドロップします
テストプレイをすると
スペースキーをおしたら、照準が切り替わってズームし、離すと元に戻ります
コメント