CharacterController 允许您轻松地进行受碰撞限制的移动,而无需处理刚体。
CharacterController 不受力的影响,只有在调用 Move 函数时才会移动。然后它将执行移动,但会受到碰撞的限制。
其他资源: Character Controller 组件 和 角色动画示例
| center | 角色胶囊相对于变换位置的中心。 | 
| collisionFlags | 上次 CharacterController.Move 调用期间胶囊的哪个部分与环境发生碰撞。 | 
| detectCollisions | 确定其他刚体或角色控制器是否与该角色控制器发生碰撞(默认情况下始终启用)。 | 
| enableOverlapRecovery | 启用或禁用重叠恢复。启用或禁用重叠恢复。用于在检测到重叠时使角色控制器脱离静止物体。 | 
| height | 角色胶囊的高度。 | 
| isGrounded | CharacterController 在上次移动时是否接触地面? | 
| minMoveDistance | 获取或设置角色控制器的最小移动距离。 | 
| radius | 角色胶囊的半径。 | 
| skinWidth | 角色的碰撞皮肤宽度。 | 
| slopeLimit | 角色控制器的斜坡限制(以度为单位)。 | 
| stepOffset | 角色控制器的步长偏移(以米为单位)。 | 
| velocity | 角色的当前相对速度(参见注释)。 | 
| Move | 提供附加了 CharacterController 组件的游戏对象的移动。 | 
| SimpleMove | 以速度移动角色。 | 
| OnControllerColliderHit | 当控制器在执行 Move 时击中碰撞器时调用 OnControllerColliderHit。 | 
| attachedArticulationBody | 碰撞器附加到的关节体。 | 
| attachedRigidbody | 碰撞器附加到的刚体。 | 
| bounds | 碰撞器的世界空间包围体积(只读)。 | 
| contactOffset | 该碰撞器的接触偏移值。 | 
| enabled | 启用的碰撞器将与其他碰撞器发生碰撞,禁用的碰撞器将不会发生碰撞。 | 
| excludeLayers | 该碰撞器在决定是否可以接触另一个碰撞器时应排除的其他图层。 | 
| GeometryHolder | 保存碰撞器几何形状及其类型的结构。(只读) | 
| hasModifiableContacts | 指定该碰撞器的接触是否可修改。 | 
| includeLayers | 该碰撞器在决定是否可以接触另一个碰撞器时应包含的其他图层。 | 
| isTrigger | 指定该碰撞器是否配置为触发器。 | 
| layerOverridePriority | 分配给该碰撞器的决策优先级,用于在关于碰撞器是否可以接触另一个碰撞器的决策发生冲突时使用。 | 
| material | 碰撞器使用的材质。 | 
| providesContacts | 该碰撞器是否为 Physics.ContactEvent 生成接触。 | 
| sharedMaterial | 该碰撞器的共享物理材质。 | 
| gameObject | 此组件附加到的游戏对象。组件始终附加到游戏对象。 | 
| tag | 此游戏对象的标签。 | 
| transform | 附加到此游戏对象的变换。 | 
| hideFlags | 对象是否应隐藏、与场景一起保存或由用户修改? | 
| name | 对象的名称。 | 
| ClosestPoint | 返回碰撞器上最靠近给定位置的点。 | 
| ClosestPointOnBounds | 最靠近附加碰撞器的包围盒的点。 | 
| GetGeometry | 返回请求类型的碰撞器的几何形状。 | 
| Raycast | 投射一条忽略所有碰撞器(除了此碰撞器)的射线。 | 
| BroadcastMessage | 调用此游戏对象或其任何子对象中的每个 MonoBehaviour 上名为 methodName 的方法。 | 
| CompareTag | 将游戏对象的标签与定义的标签进行比较。 | 
| GetComponent | 获取与指定组件位于同一游戏对象上的类型为 T 的组件的引用。 | 
| GetComponentInChildren | 获取与指定组件位于同一游戏对象或该游戏对象的任何子对象上的类型为 T 的组件的引用。 | 
| GetComponentIndex | 获取组件在其父游戏对象上的索引。 | 
| GetComponentInParent | 获取与指定组件位于同一游戏对象或该游戏对象的任何父对象上的类型为 T 的组件的引用。 | 
| GetComponents | 获取与指定组件位于同一游戏对象上的类型为 T 的所有组件的引用。 | 
| GetComponentsInChildren | 获取与指定组件位于同一游戏对象或该游戏对象的任何子对象上的类型为 T 的所有组件的引用。 | 
| GetComponentsInParent | 获取与指定组件位于同一游戏对象或该游戏对象的任何父对象上的类型为 T 的所有组件的引用。 | 
| SendMessage | 调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。 | 
| SendMessageUpwards | 调用此游戏对象以及行为的每个祖先中的每个 MonoBehaviour 上名为 methodName 的方法。 | 
| TryGetComponent | 获取指定类型的组件(如果存在)。 | 
| GetInstanceID | 获取对象的实例 ID。 | 
| ToString | 返回对象的名称。 | 
| Destroy | 删除游戏对象、组件或资源。 | 
| DestroyImmediate | 立即销毁对象 obj。强烈建议使用 Destroy 而不是此方法。 | 
| DontDestroyOnLoad | 加载新场景时不要销毁目标对象。 | 
| FindAnyObjectByType | 检索任何已加载的活动类型为 type 的对象。 | 
| FindFirstObjectByType | 检索第一个已加载的活动类型为 type 的对象。 | 
| FindObjectsByType | 检索所有已加载的类型为 type 的对象列表。 | 
| Instantiate | 克隆对象 original 并返回克隆。 | 
| InstantiateAsync | 捕获原始对象(必须与某些游戏对象相关联)的快照,并返回 AsyncInstantiateOperation。 | 
| bool | 对象是否存在? | 
| operator != | 比较两个对象是否引用不同的对象。 | 
| operator == | 比较两个对象引用,以查看它们是否引用同一对象。 | 
| OnCollisionEnter | 当此碰撞器/刚体开始接触另一个刚体/碰撞器时调用 OnCollisionEnter。 | 
| OnCollisionExit | 当此碰撞器/刚体停止接触另一个刚体/碰撞器时调用 OnCollisionExit。 | 
| OnCollisionStay | 每帧为接触另一个碰撞器或刚体的每个碰撞器或刚体调用一次 OnCollisionStay。 | 
| OnTriggerEnter | 当一个游戏对象与另一个游戏对象发生碰撞时,Unity 会调用 OnTriggerEnter。 | 
| OnTriggerExit | 当碰撞器 other 停止接触触发器时调用 OnTriggerEnterExit。 | 
| OnTriggerStay | 几乎每帧都会为接触触发器的每个碰撞器 other 调用一次 OnTriggerStay。该函数位于物理计时器上,因此它不一定会在每帧运行。 |