照準器のオートズーム機能実装




オートズーム機能
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ZoomController : MonoBehaviour
{
private Camera cam;
private float zoom;
private float view;
void Start()
{
cam = GetComponent<Camera>();
view = cam.fieldOfView;
}
void Update()
{
cam.fieldOfView = view + zoom;
// ズームアップの上限値を定める。
if(cam.fieldOfView < 20f)
{
cam.fieldOfView = 20f;
}
// 元の位置を定める。
if(cam.fieldOfView > 60f)
{
cam.fieldOfView = 60f;
}
// 実際にどのキーを割り当てるかは自由です。
if(Input.GetKey(KeyCode.RightShift))
{
// どれくらいのスピードでズームアップするかは下記で決まる。
zoom -= 1.2f;
// 下記のコードがなぜ必要なのか考えてみよう。
if(zoom < -40f)
{
zoom = -40f;
}
}
else // ここでのelseの内容を考えてみよう。
{
zoom += 1.2f;
// 下記のコードがなぜ必要なのか考えてみよう。
if(zoom > 0)
{
zoom = 0;
}
}
// zoomの値がどのように変化するか確認してみよう!
print("zoomの値" + zoom);
}
}



【2019版】BattleTank(基礎/全38回)
他のコースを見る



オートズーム機能
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ZoomController : MonoBehaviour
{
private Camera cam;
private float zoom;
private float view;
void Start()
{
cam = GetComponent<Camera>();
view = cam.fieldOfView;
}
void Update()
{
cam.fieldOfView = view + zoom;
// ズームアップの上限値を定める。
if(cam.fieldOfView < 20f)
{
cam.fieldOfView = 20f;
}
// 元の位置を定める。
if(cam.fieldOfView > 60f)
{
cam.fieldOfView = 60f;
}
// 実際にどのキーを割り当てるかは自由です。
if(Input.GetKey(KeyCode.RightShift))
{
// どれくらいのスピードでズームアップするかは下記で決まる。
zoom -= 1.2f;
// 下記のコードがなぜ必要なのか考えてみよう。
if(zoom < -40f)
{
zoom = -40f;
}
}
else // ここでのelseの内容を考えてみよう。
{
zoom += 1.2f;
// 下記のコードがなぜ必要なのか考えてみよう。
if(zoom > 0)
{
zoom = 0;
}
}
// zoomの値がどのように変化するか確認してみよう!
print("zoomの値" + zoom);
}
}



照準器のオートズーム機能実装