zoukankan      html  css  js  c++  java
  • Unity EventSystem.current.IsPointerOverGameObject() 真机BUG

    版本号:**2017.4.29f **

    判断是否点击触摸在UI上所调用的 EventSystem.current.IsPointerOverGameObject() 接口有问题,在真机无法返回正确判断。

    处理办法:
    1、UI事件发出射线检测

        public static bool IsPointerOverGameObject()
        {
            PointerEventData eventData = new PointerEventData(UnityEngine.EventSystems.EventSystem.current);
            eventData.pressPosition = Input.mousePosition;
            eventData.position = Input.mousePosition;
    
            List<RaycastResult> list = new List<RaycastResult>();
            UnityEngine.EventSystems.EventSystem.current.RaycastAll(eventData, list);
    
            return list.Count > 0;
        }
    
    

    2、Canvas的GraphicRaycaster发出射线检测

    
        public bool IsPointerOverGameObject(Canvas canvas)
        {
            PointerEventData eventData = new PointerEventData(EventSystem.current);
            eventData.pressPosition = Input.mousePosition;
            eventData.position = Input.mousePosition;
    
            GraphicRaycaster uiRaycaster = canvas.gameObject.GetComponent<GraphicRaycaster>();
    
            List<RaycastResult> results = new List<RaycastResult>();
            uiRaycaster.Raycast(eventData, results);
    
            return results.Count > 0;
        }
    
  • 相关阅读:
    第十一次作业
    第十次作业
    第九次作业
    第八次作业
    第七次作业
    第六次作业
    Springboot 2.x 使用 Druid 数据源
    @ConditionalOnMissingBean、@Import 组合使用
    Springboot 2.x 整合 JDBC
    IDEA org.apache.maven.plugins:maven-jar-plugin 报红
  • 原文地址:https://www.cnblogs.com/ZeroyiQ/p/12096738.html
Copyright © 2011-2022 走看看