Quaternoin 的旋转函数 static Quaternion LookRotation(Vector3 forward, Vector3 upwards = Vector3.up); Transform 中的 旋转函数 void LookAt(Transform target, Vector3 worldUp = Vector3.up); void LookAt(Vector3 worldPosition, Vector3 worldUp = Vector3.up); 三个函数的使用方法 基本类似. 都有两个参数,第一个参数的目的是为了 提供 z轴方向 (目标方向). 第二个参数提供了 X轴方向(站立朝向). z轴 需要与 目标方向 一致. X轴方向 与 站立朝向垂直. 也就是 站立朝向 提供了一个 垂直与自身的平面. x轴一定会落在这个平面上. LookRotation 的两个参数比较 好理解,和上面的解释相对应, 这个函数返回值 是一个Quaternion. 这个值是符合两个参数的一个新的旋转值. LookAt Transform 的 Z 方向就是 forward . worldPosition 方向 就是 forward. 这两个函数直接把 新的朝向赋值给了 本身的 Transform. 就是LookRotation 的一个升级情况. 这三个函数 的第二个参数 都有一个默认的朝向.如果不填就都是 010, 世界坐标中的 +Y 方向. 官方提供的 平滑看相 目标的 示例: 摄像机平滑锁定目标示例: var target : Transform; var damping = 6.0; // 最后放在 lateUpdate 之中, 以确保 所有 移动已经执行完成. LateUpdate(){ ... var rotation = Quaternion.LookRotation(target.position - transform.position); // 获得 目标方向 transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping); // 差值 趋向目标 .... }
标签:LookRotation,Vector3,Transform,unity,LookAt,方向,rotation From: https://www.cnblogs.com/porter/p/17828588.html