【Unity】マウス操作でカメラの移動をコントロール①
とりあえずメインカメラにアタッチするだけで動く
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TargetCamera : MonoBehaviour { // Inspectorから設定 public GameObject ViewTarget = null; public float Speed = 0.02f; // 内部処理用 private Transform cacheTransform; private Vector3 toPos = Vector3.zero; void Start() { this.cacheTransform = transform; toPos = this.cacheTransform.position; } void Update() { // 左クリックしながらマウスを動かすとXY方向にカメラを移動 if (Input.GetMouseButton(0)) { toPos.x += Input.GetAxis("Mouse X"); toPos.y += Input.GetAxis("Mouse Y"); } // マウスホイールでZ方向に移動 toPos.z += Input.mouseScrollDelta.y; // 目的地に向かって座標を補間(滑らかな移動) this.cacheTransform.position = Vector3.Lerp(transform.position, toPos, Speed); // カメラは常にターゲットを見る this.cacheTransform.LookAt(ViewTarget? ViewTarget.transform.position : Vector3.zero, Vector3.up); } }