はじめに
どうも! みなため(@MinatameT)です。
この記事では、次のことが全部できるスクリプトの作り方を説明しています。
このスクリプトでできること
- カメラの上下左右移動
- カメラのズームイン(拡大)とズームアウト(縮小)
これらの機能は、すべてキーボード入力で利用できるものとします。
それではさっそく、作り方を説明していきます。
動作環境
- Windows 7
- Unity 2019
カメラ移動とズームのスクリプト
スクリプト名は「CameraZoom」とします。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraZoom : MonoBehaviour
{
Transform tf; //Main CameraのTransform
Camera cam; //Main CameraのCamera
void Start()
{
tf = this.gameObject.GetComponent<Transform>(); //Main CameraのTransformを取得する。
cam = this.gameObject.GetComponent<Camera>(); //Main CameraのCameraを取得する。
}
void Update()
{
if(Input.GetKey(KeyCode.I)) //Iキーが押されていれば
{
cam.orthographicSize = cam.orthographicSize - 1.0f; //ズームイン。
}
else if(Input.GetKey(KeyCode.O)) //Oキーが押されていれば
{
cam.orthographicSize = cam.orthographicSize + 1.0f; //ズームアウト。
}
if(Input.GetKey(KeyCode.UpArrow)) //上キーが押されていれば
{
tf.position = tf.position + new Vector3(0.0f,1.0f,0.0f); //カメラを上へ移動。
}
else if(Input.GetKey(KeyCode.DownArrow)) //下キーが押されていれば
{
tf.position = tf.position + new Vector3(0.0f,-1.0f,0.0f); //カメラを下へ移動。
}
if(Input.GetKey(KeyCode.LeftArrow)) //左キーが押されていれば
{
tf.position = tf.position + new Vector3(-1.0f,0.0f,0.0f); //カメラを左へ移動。
}
else if(Input.GetKey(KeyCode.RightArrow)) //右キーが押されていれば
{
tf.position = tf.position + new Vector3(1.0f,0.0f,0.0f); //カメラを右へ移動。
}
}
}
このスクリプトを、Main Cameraにアタッチ(ドラッグ&ドロップで装着)してください。
そうすれば、カメラの移動機能とズーム機能が使えるようになります。
カメラの操作方法は、次の表のとおりです。
キー | 機能 |
I | ズームイン |
O | ズームアウト |
上矢印 | 上移動 |
下矢印 | 下移動 |
左矢印 | 左移動 |
右矢印 | 右移動 |
ズームインやズームアウトの強さを変更したい場合は、次の部分の「1.0f」の部分を変更してみてください。
if(Input.GetKey(KeyCode.I)) //Iキーが押されていれば
{
cam.orthographicSize = cam.orthographicSize - 1.0f; //ズームイン。
}
else if(Input.GetKey(KeyCode.O)) //Oキーが押されていれば
{
cam.orthographicSize = cam.orthographicSize + 1.0f; //ズームアウト。
}
また、カメラ移動の強さを変更したい場合は、次のVector3の部分の「1.0f」または「-1.0f」の部分を変更してみてください。
if(Input.GetKey(KeyCode.UpArrow)) //上キーが押されていれば
{
tf.position = tf.position + new Vector3(0.0f,1.0f,0.0f); //カメラを上へ移動。
}
else if(Input.GetKey(KeyCode.DownArrow)) //下キーが押されていれば
{
tf.position = tf.position + new Vector3(0.0f,-1.0f,0.0f); //カメラを下へ移動。
}
if(Input.GetKey(KeyCode.LeftArrow)) //左キーが押されていれば
{
tf.position = tf.position + new Vector3(-1.0f,0.0f,0.0f); //カメラを左へ移動。
}
else if(Input.GetKey(KeyCode.RightArrow)) //右キーが押されていれば
{
tf.position = tf.position + new Vector3(1.0f,0.0f,0.0f); //カメラを右へ移動。
}
最後に、このスクリプトを使ったときの動画を掲載しておきます。ぜひ、ご覧ください。
カメラ移動とズームのスクリプトを使ってみた動画
シーンには、私のキャラクターの顔画像だけを置いています。
この記事が読者さんたちの参考になれば幸いです。