Unity3D 角色控制器 Character Controller

秒速五厘米 2024-04-17 16:35 174阅读 0赞

添加组件

在这里插入图片描述
在这里插入图片描述


角色控制器组件介绍

【Slope Limite】爬坡角度限制(如图限制爬坡角度为10度,超过10度的斜坡无法前进)

【Step Offset】脚步长度限制

【Skin Width】和胶囊体相关,建议不用调0.001

【Min Move Distance】两个物体间的最小距离,到这个距离后,物体就不在前进

【Center】胶囊体的位置(相对物体对象的位置)

【Radius】胶囊体周长

【Height】胶囊体高度

【胶囊体】角色控制器的碰撞模型,用于【Slope Limite】、【Step Offset】、【Min Move Distance】的计算
在这里插入图片描述


角色控制器的脚本调用

控制物体移动:

  1. Move(); 不包含重力效果的移动
  2. SimpleMove(); 包含重力效果的移动,推荐使用
    CharacterController组件对象.SimpleMove(方向 * 移动速度 * Time.deltaTime);
    cc.SimpleMove(transform.right * speed * Input.GetAxisRaw("Horizontal") * Time.deltaTime);

世界坐标系: Vector3.方向

本地坐标系: transform.方向(只有:up、forward、right,只有正方向,没有负方向)

  1. public class PlayMove : MonoBehaviour
  2. {
  3. private CharacterController cc;
  4. public float speed;
  5. // Start is called before the first frame update
  6. void Start()
  7. {
  8. //获取角色控制器组件对象
  9. cc = GetComponent<CharacterController>();
  10. //初始化速度
  11. speed = 100f;
  12. }
  13. // Update is called once per frame
  14. void Update()
  15. {
  16. //控制物体移动,SimpleMove包含重力效果的移动,前后移动
  17. cc.SimpleMove(transform.forward * speed * Input.GetAxisRaw("Vertical") * Time.deltaTime);
  18. //控制物体移动,SimpleMove包含重力效果的移动,左右移动
  19. cc.SimpleMove(transform.right * speed * Input.GetAxisRaw("Horizontal") * Time.deltaTime);
  20. }
  21. }

发表评论

表情:
评论列表 (有 0 条评论,174人围观)

还没有评论,来说两句吧...

相关阅读

    相关 unity角色控制器详解

    场景: 角色控制器是Unity中的一种特殊组件,它可以用于控制游戏中的角色。角色控制器提供了一些有用的功能,例如移动、跳跃、重力和碰撞检测等,可以帮助您实现角色的基本控制