transform.LookAt参数详解

介绍

transform.LookAt()是Unity中的一个函数,用于让一个物体朝向另一个物体或者某个方向。该函数可以让物体在世界坐标系中旋转,使得物体的Z轴(前方向)始终朝向目标位置或者方向。

该函数的参数包括目标位置、世界坐标系中的“上”方向、旋转轴向等。其中,目标位置可以是一个Vector3类型的坐标,也可以是一个Transform组件;“上”方向默认为世界坐标系中的Y轴;旋转轴向默认为Y轴。

transform.LookAt()常常用于实现摄像机跟随、角色朝向、导弹追踪等效果。


方法

transform.LookAt()函数的参数包括:

target:要朝向的目标物体或者位置。可以是一个Transform组件或者Vector3类型的位置坐标。

worldUp:一个向量,表示世界坐标系中的“上”方向。默认值为Vector3.up。

axis:一个枚举类型的参数,表示旋转的轴向。可以是X轴、Y轴或Z轴。默认值为Y轴。

注意:如果target是一个Transform组件,那么物体将会朝向目标物体的中心点。如果target是一个位置坐标,那么物体将会朝向该位置。


举例子

使用示例:

让一个物体朝向摄像机位置:

transform.LookAt(Camera.main.transform.position);

让一个物体朝向另一个物体:

transform.LookAt(target.transform);

让一个物体朝向某个位置坐标:

transform.LookAt(new Vector3(0, 0, 0));

设置“上”方向:
如果目标位置在物体的后方,可以通过设置“上”方向来解决问题。例如,如果要让物体始终朝向目标位置,但是目标位置在物体的后方,可以这样设置:

transform.LookAt(target.transform, Vector3.up);

这样,物体将会始终朝向目标位置,同时保持“上”方向不变。