1.先建立一个空对象,然后把主摄像机拉近空对象中
2.主角里面建立一个空对象
3.把主角里面建立的空对象拉到摄像机上的脚本
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Camera : MonoBehaviour
{
public Transform playerPos;
public float distance = 15.0f;
public float xSpeed = 50.0f;
public float ySpeed = 50.0f;
public float yMinLimit = -20.0f;
public float yMaxLimit = 40.0f;
private float x;
private float y;
public float heightOffset = 3.5f;
void Awake()
{
Vector3 angles = transform.eulerAngles;
x = angles.x;
y = angles.y;
if(GetComponent<Rigidbody>() != null)
{
GetComponent<Rigidbody>().freezeRotation = true;
}
}
void LateUpdate()
{
if(playerPos != null)
{
x += (float)(Input.GetAxis("Mouse X") * xSpeed * 0.02f);
y -= (float)(Input.GetAxis("Mouse Y") * ySpeed * 0.02f);
y = ClampAngle(y, yMinLimit, yMaxLimit);
Quaternion rotation = Quaternion.Euler(y, x, 0);
Vector3 position = rotation * (new Vector3(0.0f, heightOffset, -distance)) + playerPos.position;
transform.rotation = rotation;
transform.position = position;
}
}
private float ClampAngle(float angle, float min, float max)
{
if(angle < -360)
{
angle += 360;
}
if(angle > 360)
{
angle -= 360;
}
return Mathf.Clamp (angle, min, max);
}
}