基于Unity3D的相机功能的实现(四)——第三人称相机(TPS)

在游戏开发中,第三人称相机(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);
	}
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值