在游戏开发中,第三人称相机(FPS)是一个很常见的需求,我们今天来实现该功能。
这种相机跟随,是第三人称角度看向对象的,也就是一直看向对象的后面,如一直显示玩家的后背。
挂载到相机上即可,代码如下:
using UnityEngine;
using System.Collections;
//相机一直拍摄主角的后背
public class CameraFlow_TPS : MonoBehaviour {
//目标对象
public Transform target;
//垂直方向偏移
public float distanceUp=15f;
//水平方向偏移
public float distanceAway = 10f;
//位置平滑值
public float posSmooth = 2f;
//Fov平滑值
public float fovSmooth = 5f;
void Update () {
// 鼠标轴控制相机的远近
if ((Input.mouseScrollDelta.y < 0 && Camera.main.fieldOfView >= 3) || Input.mouseScrollDelta.y > 0 && Camera.main.fieldOfView <= 80)
{
Camera.main.fieldOfView += Input.mouseScrollDelta.y * fovSmooth * Time.deltaTime;
}
}
void LateUpdate()
{
//相机的位置
Vector3 targetPos = target.position + Vector3.up * distanceUp - target.forward * distanceAway;
transform.position=Vector3.Lerp(transform.position,targetPos,Time.deltaTime*posSmooth);
//相机的角度
transform.LookAt(target.position);
}
}