【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);
  }
}