版本:Unity 6 (6000.0)
语言:English
解包预制实例
目标约束

约束

约束组件将游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路径点等。游戏对象的功能由附加在其上的组件定义。 更多信息
请参阅 术语表
的位置、旋转或缩放链接到另一个游戏对象。受约束的游戏对象会像其链接到的游戏对象一样移动、旋转或缩放。

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

  • 目标:旋转受约束的游戏对象使其面向链接的游戏对象。

  • 看向:旋转受约束的游戏对象使其看向链接的游戏对象(简化的目标约束)。

  • 父级:使用链接的游戏对象移动和旋转受约束的游戏对象。

  • 位置:像链接的游戏对象一样移动受约束的游戏对象。

  • 旋转:像链接的游戏对象一样旋转受约束的游戏对象。

  • 缩放:像链接的游戏对象一样缩放受约束的游戏对象。

链接到游戏对象

使用约束组件中的列表指定要链接到的游戏对象。

例如,要使十字准星跟随 2D 射击游戏中玩家的宇宙飞船,请向十字准星添加位置约束组件。要将十字准星链接到宇宙飞船,请导航到位置约束组件并将宇宙飞船游戏对象添加到列表中。当玩家移动宇宙飞船时,十字准星会跟随。

A Position Constraint for a crosshair. The crosshair follows the player’s spaceship (red).
十字准星的位置约束。十字准星跟随玩家的宇宙飞船(红色)。

一个约束可以链接到多个源游戏对象。在这种情况下,约束使用其源游戏对象的平均位置、旋转或缩放。例如,要使灯光照射到一组游戏对象,请向灯光游戏对象添加目标约束组件。然后,将要照亮的游戏对象添加到列表中。目标约束将灯光的朝向调整为面向其源的平均位置。

Unity 按其在列表中出现的顺序评估源游戏对象。对于位置缩放约束,顺序没有影响。但是,顺序会影响父级在层次结构中包含子对象的物体。当一个游戏对象是另一个游戏对象的父级时,子游戏对象将完全按照其父级移动、旋转和缩放。您可以将父级关系想象成您手臂和身体之间的关系;无论您的身体如何移动,您的手臂也会随之移动。 更多信息
请参阅 术语表
旋转目标约束。要获得所需的结果,请通过拖放项目重新排序列表。

您可以约束一系列游戏对象。例如,您希望鸭子宝宝排成一排跟随它们的妈妈。您向Duckling1游戏对象添加位置约束组件。在列表中,您链接到MotherDuck。然后,您向Duckling2添加一个链接到Duckling1位置约束。当MotherDuck游戏对象在场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰,从本质上讲,将游戏分段设计和构建。 更多信息
请参阅 术语表
中移动时,Duckling1跟随MotherDuckDuckling2跟随Duckling1

避免创建约束循环,因为这会导致游戏过程中出现不可预测的更新。

设置约束属性

使用检查器窗口更改约束中的常用属性。

Weight and Constraint Settings for a Position Constraint
位置约束的权重和约束设置

使用权重来改变约束的影响。权重为 1 会导致约束以与源游戏对象相同的速率更新游戏对象。权重为 0 会完全消除约束的效果。每个源游戏对象也有一个单独的权重。

约束设置中,使用静止状态属性指定当权重为 0 或当冻结轴中的相应属性未选中时要使用的 X、Y 和 Z 值。

使用约束设置中的偏移属性指定约束游戏对象时要使用的 X、Y 和 Z 值。

使用冻结轴设置切换约束可以实际修改的轴。

激活和锁定约束

使用约束有两个方面:激活和锁定。

激活约束以允许其评估受约束的游戏对象的位置、旋转或缩放。Unity 不会评估非活动约束。

锁定约束以允许其移动、旋转或缩放游戏对象。锁定的约束会控制游戏对象变换的相关部分。您不能手动移动、旋转或缩放具有锁定约束的游戏对象。您也不能编辑约束设置

要手动编辑游戏对象的位置、旋转或缩放,请解锁其约束。如果约束在解锁时处于活动状态,则当您移动、旋转或缩放受约束的游戏对象或其源游戏对象时,约束会为您更新约束设置

当您向游戏对象添加约束组件时,默认情况下约束处于非活动状态且未锁定。这使您可以在激活和锁定约束之前微调受约束的游戏对象和源游戏对象的位置、旋转和缩放。

为了方便起见,激活归零按钮会为您更新约束设置

  • 激活:保存当前与源游戏对象的偏移量,然后激活并锁定受约束的游戏对象

  • 归零:重置位置、旋转或缩放以匹配源游戏对象,然后激活并锁定受约束的游戏对象。

动画和组合约束

使用动画剪辑可用于动画角色或简单动画的动画数据。它是一段简单的“单元”运动,例如(一个特定的实例)“空闲”、“行走”或“跑步”。 更多信息
请参阅 术语表
修改受约束的游戏对象链接到的源游戏对象。当动画修改源游戏对象时,约束会修改受约束的游戏对象。

您还可以为约束组件中的属性设置动画。例如,使用父级约束将角色的剑从其手中移动到其背上。首先,向剑游戏对象添加父级约束。在列表中,将约束链接到角色的手和角色的脊柱。要为剑设置动画,请为每个源的权重添加关键帧标记动画中过渡的起始点或结束点的帧。关键帧之间的帧称为中间帧。
请参阅 术语表
。要为剑从背到手的移动设置动画,请添加关键帧以将手的权重从 0 更改为 1,并为脊柱的权重从 1 更改为 0 添加关键帧。

您可以向同一个游戏对象添加多种类型的约束组件。更新游戏对象时,Unity 会按其在检查器窗口中出现的顺序从前到后评估约束组件。一个游戏对象只能包含一个相同类型的约束组件。例如,您不能添加多个位置约束。

导入约束

当从 Autodesk® Maya® 和 MotionBuilder® 将 FBX 文件导入 Unity 编辑器时,您可以包含约束。单击导入设置窗口的动画选项卡并选中导入约束

Import Settings with Import Constraints checked
选中导入约束的导入设置

对于 FBX 文件中的每个约束,Unity 会自动添加相应的约束组件并将其链接到正确的游戏对象。

添加和编辑约束

要添加约束组件

  1. 选择要约束的游戏对象。

  2. 检查器一个 Unity 窗口,显示有关当前选定的游戏对象、资产或项目设置的信息,允许您检查和编辑值。 更多信息
    请参阅 术语表
    窗口中,单击添加组件搜索要添加的约束类型,然后单击它以添加它。

  3. 要向新的约束添加源游戏对象,请将该游戏对象从层次结构(或从场景视图)拖到列表中。

  4. 移动、旋转或缩放受约束的游戏对象及其源游戏对象。

  5. 要激活约束,请单击激活归零,或选中处于活动状态锁定

要编辑约束组件

  1. 在编辑器中选择受约束的游戏对象。

  2. 要调整静止状态偏移字段,请使用检查器窗口展开约束设置,取消选中锁定,然后编辑值。

  3. 要指定约束更新的轴,请展开约束设置,然后选中冻结轴中的属性。

  4. 要向约束添加源游戏对象

    • 如果源列表中没有空插槽,请单击列表底部的 +。

    • 将要用作约束源的游戏对象从场景拖到列表中。

  5. 要删除源游戏对象,请在列表中选择它,然后单击列表底部的减号 (-)。

  6. 要重新排序列表中的源游戏对象,请单击要移动的每个游戏对象左侧的双条图标,然后将其向上或向下拖动。

    注意:列表中,顺序对位置、旋转和缩放约束没有影响。但是,顺序会影响父级和目标约束如何移动或旋转游戏对象。

  7. 选中处于活动状态锁定


  • 2018 年 4 月 11 日 发布页面

  • 2018.1 中添加了约束 NewIn20181

解包预制实例
目标约束