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

(197评价)
价格: 4431.00元
怎么样才能让射线不与UI碰撞
Altria发起了问答2017-08-08
6
回复
1111
浏览

老师,我用的UGUI写的黑暗之光,但是鼠标在点击UI的同时人物还会移动,加了判断UI标签的代码但还是会移动

怎么样才能不让射线与UI发生碰撞

我代码是写在这里的 控制人物方向发射射线的地方

 

void Update ()
    {
        
        if (Input.GetMouseButtonDown (0))
        {
            Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
            RaycastHit hitInfo;
            bool isCollder = Physics.Raycast(ray,out hitInfo);
            //LayerMask mask = 1 << LayerMask.NameToLayer ("UI");
            if (isCollder && hitInfo.collider.tag == Tags.ground)
            {
                ismoving = true;
                ShowEffet (hitInfo.point);
            }
        

        }

        if (Input.GetMouseButtonUp (0))
        {
            ismoving = false;
        }

        if (ismoving)
        {
            Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
            RaycastHit hitInfo;
            bool isCollder = Physics.Raycast (ray, out hitInfo);
            if (isCollder && hitInfo.collider.tag == Tags.ground)
            {
                
                LOOKATtarg (hitInfo.point);

            }
        }
        else
        {
            if (playerMove.isMoving) 
            {
                LOOKATtarg (tragetpostion);
            }
        }
    }

    void ShowEffet(Vector3 hitpoint)
    {
        hitpoint = new Vector3 (hitpoint.x, hitpoint.y + 0.1f, hitpoint.z);
        GameObject.Instantiate (effetprefab, hitpoint, Quaternion.identity);
    }

    void LOOKATtarg(Vector3 hitInfo)
    {
            tragetpostion = hitInfo;
            tragetpostion = new Vector3 (tragetpostion.x, transform.position.y, tragetpostion.z);
            this.transform.LookAt (tragetpostion);
    }
}

所有回复
  • siki 2017-08-08

    ui里面的image上有一个raycast hit 取消勾线了,就不会和UI碰撞了

    还有-2条回复,点击查看
    你还没有登录,请先登录注册
  • 丶小菜鸟 2017-08-09

    你也可以关闭层与层之间的碰撞来实现这个

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-08-09

    可以通过这个EventSystem.current.IsPointerOverGameObject() 来判断鼠标是否在UI上,如果在的话,那么不进行下面控制移动的代码,这样鼠标在UI上的时候人物就不移动了

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