Unity-CharacterController(角色控制器)

Posted SYFStrive

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity-CharacterController(角色控制器)相关的知识,希望对你有一定的参考价值。

📜:关于CharacterController组件的一篇文字
🥧: 点击观看常用组件相关使用🦄
🥧:感谢大佬支持,小胖先给你们表演一段走秀😀

📋目录

提示:以下是本篇文章正文内容

CharacterController

描述

  1. CharacterController 可使您轻松进行受碰撞约束的移动,同时不必处理刚体。
  2. CharacterController 不受力影响,仅在您调用 Move 函数时才会移动。 然后它执行移动,但受碰撞约束。

变量

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

公共函数

函数名作用
Move ✔为GameObject 的移动提供附加的 CharacterController 组件。
SimpleMove以 speed 移动该角色。

继承的成员

变量名作用
attachedRigidbody碰撞体附加到的刚体。
bounds碰撞体的世界空间包围体积(只读)。
contactOffset该碰撞体的接触偏移值。
enabled启用的 Collider 将与其他 Collider 碰撞,禁用的 Collider 不会这样。
isTrigger碰撞体是不是触发器?
material碰撞体使用的材质。
sharedMaterial该碰撞体的共享物理材质。
gameObject此组件附加到的游戏对象。始终将组件附加到游戏对象。
tag 此游戏对象的标签。
transform附加到此 GameObject 的 Transform。
hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

函数名作用
ClosestPoint返回碰撞体上最接近给定位置的一个点。
ClosestPointOnBounds与附加碰撞体的包围盒最接近的点。
Raycast投射除这一个外忽略其他所有 Colliders 的 Ray。
BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTag此游戏对象是否使用 tag 进行了标记?
GetComponent如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。
GetComponentInChildren使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。
GetComponentInParent返回 GameObject 或其任何父项中类型为 type 的组件。
GetComponents返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildren返回 GameObject 或其任何子项中类型为 type 的所有组件。
GetComponentsInParent返回 GameObject 或其任何父项中类型为 type 的所有组件。
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。
GetInstanceID返回对象的实例 ID。
ToString返回对象的名称。

静态函数

函数名作用
Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfType返回所有类型为 type 的已加载的激活对象的列表。
Instantiate克隆 original 对象并返回克隆对象。

消息

消息名作用
OnCollisionEnter当该碰撞体/刚体已开始接触另一个刚体/碰撞体时,调用 OnCollisionEnter。
OnCollisionExit当该碰撞体/刚体已停止接触另一个刚体/碰撞体时,调用 OnCollisionExit。
OnCollisionStay对应正在接触刚体/碰撞体的每一个碰撞体/刚体,每帧调用一次 OnCollisionStay。
OnTriggerEnterGameObject 与另一个 GameObject 碰撞时,Unity 会调用 OnTriggerEnter。
OnTriggerExit当 Collider other 已停止接触该触发器时调用 OnTriggerExit。
OnTriggerStay对于正在接触该触发器的每个其他 Collider,“几乎”所有帧都调用 OnTriggerStay。此函数位于物理计时器上,因此它不必运行每个帧。

案例

实现人物移动

📰代码演示:

效果如👇:

最后

本文章持续更新,觉得不错的请给我专栏点点订阅,你的支持是我们更新的动力,感谢大家的支持,希望这篇文章能帮到大家

点击跳转到Unity引擎相关使用

待更

以上是关于Unity-CharacterController(角色控制器)的主要内容,如果未能解决你的问题,请参考以下文章