Unity3d UGUI判断鼠标是否在UI上

来源:互联网 发布:spss如何分析数据 编辑:程序博客网 时间:2024/06/01 03:59

鼠标点击控制人物移动的时候,当我们打开UI面板,点击UI也会出现人物移动,为了解决这个情况,就需要在人物移动逻辑前面判断鼠标是不是在UI上,否则不进行移动处理。


//判断UI层    public EventSystem eventsystem;    public GraphicRaycaster graphicRaycaster; //检测方法,返回false代表射线没有触碰UI层    bool CheckGuiRaycastObjects()    {        PointerEventData eventData = new PointerEventData(eventsystem);        eventData.pressPosition = Input.mousePosition;        eventData.position = Input.mousePosition;        List<RaycastResult> list = new List<RaycastResult>();        graphicRaycaster.Raycast(eventData, list);        return list.Count > 0;    }


1. eventSystem需要获取UGUI自动生成的EventSystem对象(UGUI事件系统,很多实用接口)

2. graphicRaycaster需要获取canvas对象上的GraphicRaycaster组件(主要用于UGUI射线检测)


如果返回true表示鼠标在UI层上面= =.搞定

1 0