前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Unity3D】CharacterController控制人物的移动

【Unity3D】CharacterController控制人物的移动

原创
作者头像
恬静的小魔龙
修改2020-03-11 10:27:39
2.3K0
修改2020-03-11 10:27:39
举报
文章被收录于专栏:Unity3DUnity3D

Unity3d使用CharacterController控制行走


  1. 使用Input.GetAxis("Horizontal") 和 "Vertical"得到垂直和水平方向的值
  2. 使用CharacterController.SimpleMove(Vector3)参数表示运动的方向和速度 单位可以认为是 m/s

代码如下:

代码语言:txt
复制
private CharacterController cc;
    public float speed = 4;
    
    void Start()
    {
        cc = GetComponent<CharacterController>();
    }

    
    void Update()
    {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");
        if (Mathf.Abs(h)>0.1f||Mathf.Abs(v)>0.1)
        {
            Vector3 targetDir = new Vector3(h, 0, v);
            transform.LookAt(targetDir+transform.position);
            cc.SimpleMove(transform.forward * speed);
        }  
    }

注:

  1. speed 是控制人物移动的速度
  2. float h 获取的是操纵杆输入和键盘输入,值为(-1到1)的值,x轴正方向为1,负方向为-1,也就是说A键为-1,D键为1
  3. float v获取的是操纵杆输入和键盘输入,值为(-1到1)的值,y轴正方向为1,负方向为-1,也就是说W键为1,S键为01
  4. targetDir 是键盘输入之后获取到的方向,将目标用SimpleMove方法向获取到方向移动
  5. transform.lookat 是让目标旋转到获取到的方向
  6. transform.forward 是让目标向正前方移动

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档