unity LookRotation LookAt 功能详解
官方解释:
Quaternion.LookRotation
public static Quaternion LookRotation (Vector3 forward, Vector3 upwards= Vector3.up);
参数
forward | 要查看的方向。 |
upwards | 定义向上方向的向量。 |
描述
使用指定的 forward
和 upwards
方向创建旋转。
Z 轴将与forward
对齐,X 轴与 forward
和 upwards
之间的差积对齐,Y 轴与 Z 和 X 之间的差积对齐。
如果 forward
或 upwards
向量值为零,则返回恒等。 \如果 forward
和 upwards
共线,则返回恒等。
-----------------------------------------------------------------------------------------------------------------------------------------
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); // 差值 趋向目标
....
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南