Unity基础(十五)约束系统 (AimConstraint)

约束


约束组件将游戏对象的位置、旋转或缩放与另一个游戏对象关联。受约束的游戏对象像关联到的游戏对象一样移动、旋转或缩放。

Unity 支持以下类型的约束组件:

  • Aim:旋转受约束的游戏对象以朝向关联的游戏对象。<< (这节课所讲解的组件)

  • Look At:将受约束的游戏对象旋转到关联的游戏对象(简化的 Aim Constraint)。

  • Parent:使受约束的游戏对象跟随关联的游戏对象移动和旋转。

  • Position:像关联的游戏对象一样移动受约束的游戏对象。

  • Rotation:像关联的游戏对象一样旋转受约束的游戏对象。

  • Scale:像关联的游戏对象一样缩放受约束的游戏对象。

目标约束 AimConstraint


  • AimConstraint 相对于其他约束参数角度,我们接下来对不常见的属性做一下讲解
  • Aim Vector:目标矢量,就是指定物体要被约定的朝向,例如我们这里设置 0,0,1,就是 Z 轴朝向目标物,如果设置成 0,1,0 那就是 Y 轴朝向目标物相对于朝向约束只约束 Z 轴朝向,目标约束可以明确制定约束哪个轴向

此时对象的Z轴会对准目标物体的中心点

  • UpVector : 向上矢量,就是指定哪个轴向代表物体的向上朝向,例如我们这里设置为 0,1,0,就是将物体的 Y 轴设定为向上轴向
WorldUpType:指定 UpVector 的配置方式,分为多种 SceneUp,ObjectUp,ObjectRotation up,Vector,None
  • SceneUp:使用场景的向上轴为 UpVector 参考,场景的向上轴为 Y 轴,所以物体的向上轴会向上对齐。

  • ObjectUp:使用本物体到指定物体的位置之间的朝向为约束向上轴朝向,选择后 WorldUpObject 属性会被激活。

  • ObjectRotationUp:使用指定物体的指定轴向作为向上的轴约束,选择后 WorldUpObject 和 WorldUpVector 都会被激活。其中 WorldUpVector 就是配置使用 WorldUpObject 的哪个轴向来进行约束

  • Vector:使用世界控制指定的朝向作为约束朝向,选择后,WorldUpVector 会被激活,可以理解为 SceneUp 就等同于这个模式下的 0 ,1, 0

  • None : 为空没有指向类型

Constraint Settings

  • 锁定 (Lock) : 启用此设置可让约束旋转游戏对象。取消选中此属性可编辑此游戏对象的旋转。还可以编辑 Rotation At Rest 和 Rotation Offset 属性。
    如果选中了 Is Active,则约束将在您旋转游戏对象或其源游戏对象时更新 Rotation At Rest 或 Rotation Offset 属性。在对更改满意后,选中 Lock 以便让约束控制此游戏对象。此属性在运行模式 (Play Mode) 下无效。

  • Rotation At Rest : 在 Weight 为 0 时或者未选中对应的 Freeze Rotation Axes 时要使用的 X、Y 和 Z 值。要编辑这些字段,请取消选中 Lock。

  • Rotation Offset : 由约束计算的相对于旋转的 X、Y 和 Z 偏移量。要编辑这些字段,请取消选中 Lock。

  • Freeze Rotation Axes :选中 X、Y 或 Z 可允许约束控制对应的轴。取消选中某个轴可以让约束停止控制该轴。这样就可以对未冻结的轴进行编辑、动画化或编程。

  • Sources: 约束此游戏对象的游戏对象的列表。
    Unity 按照源游戏对象在此列表中出现的顺序来对源游戏对象求值。此顺序会影响此约束如何旋转受约束的游戏对象。要获得所需的结果,请拖放此列表中的项。
    每个源的权重为 0 到 1。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容