简介: 朝向约束主要用来实现被约束物体始终在某个方向上指向目标物,例如眼睛或摄像机不论怎么动都会一致盯着目标物体,是 AimConstraint 的简化版,便于操作。
版本:Unity2019.4.12f1 HDRP 7.5.1
准备
在场景中准备三个物体,一个盒子,一个胶囊,一个圆柱,并赋予不同的颜色
- 由于在约束的过程中需要知道胶囊的姿态,我们给胶囊加点造型,帮助辨别
朝向约束 LookAtConstraint
- 给胶囊添加 LookAtConstraint
- 朝向约束相对于 其它约束多了UseUpObject相关的参数,用来指定一个向上(物体 Y 轴的朝向)的轴约束,在物体 Z 轴指向目标时,尽量保证 Y 轴朝向此目标。
- Use Up Object :使用向上约束物体,关闭 roll 度数,开启 WorldUpObject
- Roll:侧翻度数
- WorldUpObject :物体的 Y 轴向一直尽量朝向这里指定的物体
- 给我们的约束物体添加一个红色圆柱为目标,我们发现指向约束默认是约束物体的 Z 轴的正方向朝向目标。这里坐标轴使用 local 模式,便可以看到物体轴的朝向
- 移动一下物体便可以看到物体的 Z 轴始终是朝向目标物体的,Y 轴朝向和 Z 轴一直成垂直
- 设置 Roll 为 90 ,可以看到我们的物体沿 Z 轴旋转了 90 度,Y 轴躺下了。
- 将Roll设置为0,然后勾选UseUpObject 指定一个白色小球作为 Y 轴约束,可以看到物体的顶端基本一直朝向小白球
- 将Roll设置为90,然后勾选UseUpObject 指定一个白色小球作为 Y 轴约束,可以看到物体的顶端基本与小白球成90度,即虽然激活UseUpObject后Roll置灰了,但是其值仍然可以影响 Y 轴约束
- 如果我们希望胶囊有小球的一端约束到目标上,则可以调整RotationOffset 来对轴向进行旋转,调整好角度后,再把lock 勾选上
- 这个功能在制作一些摄像机围绕人物旋转时能提供便捷操作