Unity-CharacterController(角色控制器)
Posted SYFStrive
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity-CharacterController(角色控制器)相关的知识,希望对你有一定的参考价值。
📜:关于CharacterController组件的一篇文字
🥧: 点击观看常用组件相关使用🦄
🥧:感谢大佬支持,小胖先给你们表演一段走秀😀
📋目录
提示:以下是本篇文章正文内容
CharacterController
描述
- CharacterController 可使您轻松进行受碰撞约束的移动,同时不必处理刚体。
- 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。 |
OnTriggerEnter | GameObject 与另一个 GameObject 碰撞时,Unity 会调用 OnTriggerEnter。 |
OnTriggerExit | 当 Collider other 已停止接触该触发器时调用 OnTriggerExit。 |
OnTriggerStay | 对于正在接触该触发器的每个其他 Collider,“几乎”所有帧都调用 OnTriggerStay。此函数位于物理计时器上,因此它不必运行每个帧。 |
案例
实现人物移动
📰代码演示:
效果如👇:
最后
本文章持续更新,觉得不错的请给我专栏点点订阅,你的支持是我们更新的动力,感谢大家的支持,希望这篇文章能帮到大家
待更
以上是关于Unity-CharacterController(角色控制器)的主要内容,如果未能解决你的问题,请参考以下文章