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);  // 差值  趋向目标
....
}
posted @   porter_代码工作者  阅读(690)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示