вот тебе пьеса. прикрепи скрипт к камере(объект на который фокусируется камера должен называться Player)
Используется csharp
using UnityEngine;
using System.Collections;
public class PlayerCamera: MonoBehaviour {
public float
xSpeed,
ySpeed,
zoomSpeed,
limitZoom;
private Transform target;
private float x, y, distance = 10;
void Start ()
{
target = GameObject.Find("Player").GetComponent<Transform>();
x += (float)(Input.GetAxis("Mouse X") * xSpeed );
y -= (float)(Input.GetAxis("Mouse Y") * ySpeed );
transform.rotation = Quaternion.Euler(y, x, 0);
}
// Update is called once per frame
void Update ()
{
distance -= (float)(Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * zoomSpeed);
if(distance < 2) distance = 2;
if(distance > limitZoom) distance = limitZoom;
if(Input.GetMouseButton(1))
{
x += (float)(Input.GetAxis("Mouse X") * xSpeed * Time.deltaTime);
y -= (float)(Input.GetAxis("Mouse Y") * ySpeed * Time.deltaTime);
if(x > 360) x = 1;
if(x < 0) x = 360;
if(y < 0) y = 0;
if(y > 90) y = 90;
transform.rotation = Quaternion.Euler(y, x, 0);
}
transform.position = transform.rotation * new Vector3(0, 1, -distance) + target.position;
}
}
то что тебе нужно находится на 44 и 46 строке
transform.rotation = Quaternion.Euler(y, x, 0);
transform.position = transform.rotation * new Vector3(0, 1, -distance) + target.position;
параметры x, y это положение камеры относительно объекта на который фокусируемся, distance соответственно дистанция от объекта