我给角色加了character controller,调了碰撞器的大小。然后在脚本里用角色控制器的move方法移动,然后无法与其他碰撞器发生碰撞,也无法检测到character controller
同学你好,可以参考一下:
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
那几篇博客我之前也查过了。还是那个问题,角色与其他物体无法发生碰撞,我是用的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;
    }
}
角色控制器是没有办法发生碰撞检测与触发检测的,博文里都有,如果同学想要的效果是,我们人物不去穿墙的话,那么一个最简单的解决方法是,加上刚体与碰撞器(这个是单独的,且不要与角色控制器挂在一个游戏物体上)。