版本: Unity 6 (6000.0)
语言英语
  • C#

CharacterController

UnityEngine 中的类

/

继承自:Collider

/

实现于:UnityEngine.PhysicsModule

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

描述

CharacterController 允许您轻松地进行受碰撞限制的移动,而无需处理刚体。

CharacterController 不受力的影响,只有在调用 Move 函数时才会移动。然后它将执行移动,但会受到碰撞的限制。

其他资源: Character Controller 组件角色动画示例

属性

center角色胶囊相对于变换位置的中心。
collisionFlags上次 CharacterController.Move 调用期间胶囊的哪个部分与环境发生碰撞。
detectCollisions确定其他刚体或角色控制器是否与该角色控制器发生碰撞(默认情况下始终启用)。
enableOverlapRecovery启用或禁用重叠恢复。启用或禁用重叠恢复。用于在检测到重叠时使角色控制器脱离静止物体。
height角色胶囊的高度。
isGroundedCharacterController 在上次移动时是否接触地面?
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。该函数位于物理计时器上,因此它不一定会在每帧运行。