动作游戏相机计算插值跟随

动作游戏相机计算插值跟随 我们在设计第三人称动作游戏时会开发相机跟随功能我们可以直接通过固定人物和相机的距离来每帧设置相机的位置也就是直接将相机瞬移也可以通过插值Vector3.Lerp(a, b, t)的方式使相机平滑移动a代表当前位置b代表目标位置t代表移动速度会根据设置的速度从a到b点平滑移动这样不会让快速移动显得突兀相机平滑移动只会移动距离不会进行转向那么就需要根据当前位置和目标位置再次设置相机的平滑转向用Quaternion.LookRotation(dir)创建一个旋转四元数使物体的 Z 轴对准这个方向然后用Quaternion.Slerpa,b,t设置当前转向目标四元数转向速度这样就可以让相机始终固定角度跟随了详细代码// 1. 计算目标位置玩家后方偏上Vector3 targetPos player.position new Vector3(距离);// 2. 平滑移动到目标位置transform.position Vector3.Lerp(transform.position, targetPos, speed * Time.deltaTime);// 3. 计算看向玩家的旋转角度Quaternion targetRotation Quaternion.LookRotation(player.position - transform.position);// 4. 平滑旋转到目标角度transform.rotation Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime);