Version: 2022.3

CharacterController

class in UnityEngine

/

继承自:Collider

切换到手册

描述

CharacterController 可使您轻松进行受碰撞约束的移动,同时不必处理刚体。

CharacterController 不受力影响,仅在您调用 Move 函数时才会移动。 然后它执行移动,但受碰撞约束。

另请参阅:角色控制器 (Character Controller) 组件角色动画示例

变量

center该角色的胶囊体中心(相对于变换组件的位置)。
collisionFlags在上次 CharacterController.Move 调用期间,该胶囊体的哪个部分与环境发生了碰撞。
detectCollisions确定其他刚体或角色控制器是否与该角色控制器碰撞(默认情况下始终启用它)。
enableOverlapRecovery启用或禁用重叠恢复。 启用或禁用重叠恢复。用于在检测到重叠时取消角色控制器从静态对象的穿透。
height该角色胶囊体的高度。
isGrounded在上次移动期间 CharacterController 是否接触地面?
minMoveDistance获取或设置此角色控制器的最小移动距离。
radius该角色胶囊体的半径。
skinWidth该角色的碰撞皮肤宽度。
slopeLimit这些角色控制器的坡度限制(单位为度)。
stepOffset这些角色控制器的台阶偏移量(单位为米)。
velocity该角色的当前相对速度(请参阅注释)。

公共函数

Move为 GameObject 的移动提供附加的 CharacterController 组件。
SimpleMove以 speed 移动该角色。

消息

OnControllerColliderHit当该控制器在执行 Move 时撞到碰撞体时调用 OnControllerColliderHit。

继承的成员

变量

attachedArticulationBodyThe articulation body the collider is attached to.
attachedRigidbody碰撞体附加到的刚体。
bounds碰撞体的世界空间包围体积(只读)。
contactOffset该碰撞体的接触偏移值。
enabled启用的 Collider 将与其他 Collider 碰撞,禁用的 Collider 不会这样。
excludeLayersThe additional layers that this Collider should exclude when deciding if the Collider can contact another Collider.
hasModifiableContactsSpecify whether this Collider's contacts are modifiable or not.
includeLayersThe additional layers that this Collider should include when deciding if the Collider can contact another Collider.
isTriggerSpecify if this collider is configured as a trigger.
layerOverridePriorityA decision priority assigned to this Collider used when there is a conflicting decision on whether a Collider can contact another Collider.
material碰撞体使用的材质。
providesContactsWhether or not this Collider generates contacts for Physics.ContactEvent.
sharedMaterial该碰撞体的共享物理材质。
gameObject此组件附加到的游戏对象。始终将组件附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。
hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

ClosestPoint返回碰撞体上最接近给定位置的一个点。
ClosestPointOnBounds与附加碰撞体的包围盒最接近的点。
Raycast投射除这一个外忽略其他所有 Colliders 的 Ray。
BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTagChecks the GameObject's tag against the defined tag.
GetComponentGets a reference to a component of type T on the same GameObject as the component specified.
GetComponentInChildrenGets a reference to a component of type T on the same GameObject as the component specified, or any child of the GameObject.
GetComponentInParentGets a reference to a component of type T on the same GameObject as the component specified, or any parent of the GameObject.
GetComponentsGets references to all components of type T on the same GameObject as the component specified.
GetComponentsInChildrenGets references to all components of type T on the same GameObject as the component specified, and any child of the GameObject.
GetComponentsInParentGets references to all components of type T on the same GameObject as the component specified, and any parent of the GameObject.
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。
GetInstanceIDGets the instance ID of the object.
ToString返回对象的名称。

静态函数

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindAnyObjectByTypeRetrieves any active loaded object of Type type.
FindFirstObjectByTypeRetrieves the first active loaded object of Type type.
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsByTypeRetrieves a list of all loaded objects of Type type.
FindObjectsOfTypeGets a list of all loaded objects of Type type.
Instantiate克隆 original 对象并返回克隆对象。

运算符

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。

消息

OnCollisionEnter当该碰撞体/刚体已开始接触另一个刚体/碰撞体时,调用 OnCollisionEnter。
OnCollisionExit当该碰撞体/刚体已停止接触另一个刚体/碰撞体时,调用 OnCollisionExit。
OnCollisionStayOnCollisionStay is called once per frame for every Collider or Rigidbody that touches another Collider or Rigidbody.
OnTriggerEnter GameObject 与另一个 GameObject 碰撞时,Unity 会调用 OnTriggerEnter。
OnTriggerExit当 Collider other 已停止接触该触发器时调用 OnTriggerExit。
OnTriggerStay对于正在接触该触发器的每个**其他** Collider,“几乎”所有帧都调用 OnTriggerStay。此函数位于物理计时器上,因此它不必运行每个帧。