Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
对character controller有点不懂
痴眠虫发起了问答2019-04-26
7
回复
209
浏览

我给角色加了character controller,调了碰撞器的大小。然后在脚本里用角色控制器的move方法移动,然后无法与其他碰撞器发生碰撞,也无法检测到character controller

所有回复
  • 老师_Trigger 2019-04-27

    同学你好,可以参考一下:
    https://www.cnblogs.com/csdnmc/p/4223480.html

    https://www.cnblogs.com/dreamCirno/p/6699408.html

    https://blog.csdn.net/qq_30454411/article/details/79139227

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 痴眠虫 2019-04-27

    那几篇博客我之前也查过了。还是那个问题,角色与其他物体无法发生碰撞,我是用的character controller的move方法控制的移动,鼠标右键控制人物朝向。墙体都加了碰撞器的。图在下面了,老师帮忙看看。

    public class Move_01 : MonoBehaviour
    {
        private float speed;
        private Dir_01 m_playerDir;
        private CharacterController controller;
        public bool isMoving;
        void Awake()
        {
            m_playerDir = transform.GetComponent<Dir_01>();
            controller = transform.GetComponent<CharacterController>();
        }
    
        void Update()
        {
            float distance = Vector3.Distance(m_playerDir.targetPos, transform.position);
            if (distance > 0.1f)
            {          
                if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
                {
                    speed = 4;
                }
                else
                {
                    speed = 2;
                }
                controller.Move(transform.forward * speed*Time.deltaTime);
                isMoving = true;
            }
            else
            {
                speed = 0;
                //state = PlayerMode.idle;
                isMoving = false;
            }       
        }
    
        public float GetSpeed()
        {
            return this.speed;
        }
    }

     

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 痴眠虫 2019-04-27

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 老师_Trigger 2019-04-27

    角色控制器是没有办法发生碰撞检测与触发检测的,博文里都有,如果同学想要的效果是,我们人物不去穿墙的话,那么一个最简单的解决方法是,加上刚体与碰撞器(这个是单独的,且不要与角色控制器挂在一个游戏物体上)。

    • 痴眠虫 2019-04-27

      博文里说:
      人物模型的碰撞检测:

      1.这种移动方法的人物模型在静态碰撞器中可以发生静态碰撞,即不能够穿越物体,碰到有静态碰撞器的物体只能停下来。

      2.在碰撞带刚体的物体时,不会穿越该物体,也不会触发任何的刚体碰撞检测函数,但是可以用另外一个函数用来检测人物模型接触到刚体物体。
      我以为这里说调用角色控制器的move方法就能发生碰撞了。换刚体和碰撞器的方法我想过,就是用角色控制器怎么做到就不懂。

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • 痴眠虫 2019-04-27

    顺便问一下:最近用unity老闪退和蓝屏,蓝屏原因查了,说是显卡驱动问题,重装显卡驱动还是会蓝屏。咋办

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 老师_Trigger 2019-04-28

    闪退跟蓝屏试试Unity换成补丁版本的,还不行可以尝试重装系统。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!