Unity C#摄像机高级跟随脚本

该博客介绍了一种Unity中实现摄像机高级跟随目标的C#脚本,通过计算多个过渡点并检查遮挡,确保摄像机在不被障碍物阻挡的情况下平滑跟踪目标,同时保持在目标上方特定高度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//声明变量,保存摄影机要跟随的目标
public Transform target;
//声明变量,保存移动速度,初始化为2
public float moveSpeed = 2;
//声明变量,保存位移
private Vector3 offset;
void Awake() {
//位移为摄像机位置与目标位置的距离
offset = transform.position - target.position;
//位移的x轴坐标锁定为0
offset = new Vector3(0, offset.y, offset.z);
}
void LateUpdate() {
//摄像机的预备开始点坐标为目标点坐标加上位移的坐标
Vector3 beginPos = target.position + offset;
//摄像机预备最终点坐标为目标点坐标的正上方(高度为位移的长度)
Vector3 endPos =target.position+offset.magnitude * Vector3.up;
//取预备开始点与预备最终点的1/5的点作为预备中间的第一个点
Vector3 pos1 = Vector3.Lerp(beginPos, endPos, 0.2f);
//取预备开始点与预备最终点的2/5的点作为预备中间的第二个点
Vector3 pos2 = Vector3.Lerp(beginPos, endPos, 0.4f);
//取预备开始点与预备最终点的3/5的点作为预备中间的第三个点
Vector3 pos3 = Vector3.Lerp(beginPos, endPos, 0.6f);
//取预备开始点与预备最终点的4/5的点作为预备中间的第四个点
Vector3 pos4 = Vector3.Lerp(beginPos, endPos, 0.8f);
//声明数组(位置排列),将以上6个预备位置放入数组
Vector3[] posArray = new Vector3[] { beginPos, p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值