# 运动组件的添加与相关说明

UMT工具中运动组件的添加包含多种方式，可以通过**UMT菜单栏**、**Unity菜单栏**、**Inspector**或者自动导入约束来实现，本章将以转轴组件 `Wheel Joint`为例详细介绍各种方式如何添加运动组件。

## 添加组件

### 通过UMT菜单栏添加

步骤如下：

1. 在场景中选中需要添加的模型或在Hierarchy窗口中点击需要设置WheelJoint的组件;
2. 点击UMT菜单栏中 `Constraints`选项栏（其他运动组件可在 `Component`选项栏中找到）;
3. 在弹出窗口中选择 `Wheel Joint`按钮，即可在场景中生成 `Wheel Joint`组件。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-e086eabe8049b78673c0439a709edf515c44b99d%2Fwheeljoint_add_via_menu.png?alt=media)

### 通过Unity菜单栏添加

步骤如下：

1. 在场景中选中需要添加的模型或在Hierarchy窗口中点击需要设置WheelJoint的组件;
2. 在Unity工具的Menu中选中**UMT**，选择**Component**子目录;
3. 在弹出窗口中选择 `Wheel Joint`按钮，即可在场景中生成 `Wheel Joint`组件。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-6969a45675d169a823c1218743c3de6985d66cec%2Fwheeljoint_add_via_unitymenu.png?alt=media)

### 通过Inspector窗口添加

步骤如下：

1. 在场景中选中需要添加的模型或在Hierarchy窗口中点击需要设置WheelJoint的组件；
2. 在 `Inspector`界面点击**AddComponent**;
3. 在弹窗中添加 `Wheel Joint`。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-a90f6f3de5acfa96a659f5282e2945b684efdd5c%2Fwheeljoint_add_ininspector.png?alt=media)

### 通过约束导入自动生成

步骤如下：

1. 在场景中选中需要添加的模型或在Hierarchy窗口中点击需要设置WheelJoint的组件;
2. 打开 `ImportAssemblyConstraints`工具;

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-c5ee195ec0b94bf22242b177c11430e07a0bcaa3%2Fimportassemblyconstraints.png?alt=media)

3. 导入模型以及约束文件，导入完成后约束文件中设置了约束的模型将自动加载相应的运动组件。可参考[导入模型与约束及自定义运动组件](https://utc.gitbook.io/umt-manual-book/primary/automaticgenerate/importconstraint)

## 运动组件的生成规则

* 当执行上述运动组件添加操作，且在 `Scene`或 `Hierarchy`窗口中没有物体被选中时，UMT工具将会生成一个挂载运动组件的空物体。在已经有一个物体被选中的情况下，再添加某个运动组件，此时会在该 `GameObject`上挂载该组件。如果该运动组件所控制的运动与挂载的 `GameObject`相关，则必须先选中相应的物体再添加运动组件。
* 需要注意的是，部分运动组件为组合使用组件，这种情况下通常添加一个组件后，其依赖的组件也会被自动添加。但也存在需要用户自定义另一个搭配组件，并手动添加的情况。组件搭配使用规则将在后续的文档中进行详细说明。
* 部分运动组件需要与Unity自带组件搭配使用，比如 `Rigidbody`, `Collider`等，在检测到挂载的 `GameObject`上没有需要的组件后，UMT工具会自动添加所需组件。

## 运动组件操作界面说明

当运动组件添加完成后，可以看到Unity编辑器中与该运动组件相关的界面变化：

1. 对应的 `GameObject`上挂载了相应的组件，Inspector中提供了该组件的设置面板。面板提供运动的参数配置以及调试的功能；
2. `Hierarchy`中对应的GameObject有了运动组件相应的小图标。关于小图标的详情，可见[Hierarchy窗口图标说明](https://utc.gitbook.io/umt-manual-book/advanced/hierarchy-icon)；
3. `Scene`中有组件配套的 `gizmo`工具，可直观展现运动状态，同时部分组件可通过操作 `gizmo`直接配置运动参数。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-9ca07dd9b7c67eb162125aedf18477c7763c6c61%2Fafterimportmotioncomponent.png?alt=media)
