【代码片段】UI射线判定,用于检测鼠标是否停留于UI上

文章介绍了在Unity中如何使用PointerEventData和RaycastAll函数进行UI射线判定,以确定鼠标是否位于UI元素上,以及获取所选元素的名称、层和标签。
摘要由CSDN通过智能技术生成

UI射线判定,用于检测鼠标是否停留于UI上

用于判断鼠标是否是在某一个UI上,或者多个UI重叠的时候的判定


//测试方法
private void TestFunc(){
  PointerEventData pointerData = new PointerEventData(EventSystem.current);
                pointerData.position = Input.mousePosition;

                List<RaycastResult> results = new List<RaycastResult>();
                EventSystem.current.RaycastAll(pointerData, results);
                if (results.Count > 0)
                {
                    GameObject hitObject = results[0].gameObject;

                    // 获取名称
                    string objectName = hitObject.name;

                    // 获取Layer
                    int layer = hitObject.layer;

                    // 获取Tag
                    string tag = hitObject.tag;

                    Debug.Log($"鼠标正指向的UI物体名称是:{objectName}");
                    Debug.Log($"该物体所在的Layer是:{layer}");
                    Debug.Log($"该物体的Tag是:{tag}");
                }
                }
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值