zoukankan      html  css  js  c++  java
  • Unity中UGUI鼠标穿透UI问题的解决方法

     不过在使用时需要先获取两个红色显示的变量,graphicRaycastereventSystem

    这两个变量分别对应的是Canvas中的GraphicRaycaster组件和创建UI时自动生成的“EventSystem”中的EventSystem组件。

    引用

    using UnityEngine;
    using System.Collections.Generic;
    using UnityEngine.EventSystems;
    using UnityEngine.UI;

      private GraphicRaycaster graphicRaycaster;
        private EventSystem eventSystem;
        void Start()
        {
            graphicRaycaster = GameObject.Find("Canvas").GetComponent<GraphicRaycaster>();
            eventSystem = GameObject.Find("EventSystem").GetComponent<EventSystem>();
        }
    
        // Update is called once per frame
        void Update()
        {
            if (CheckGuiRaycastObjects()) return;//防止射线穿透UI界面
            Debug.Log(EventSystem.current.gameObject.name);
            if (Input.GetMouseButtonDown(0))
            {
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
    
                if (Physics.Raycast(ray, out hit))
                {
                    //获取碰撞点的位置
                    if (hit.collider.name == "Terrain")
                    {
                        Debug.LogError(hit.collider.name);
                    }
                }
            }
        }
    
        bool CheckGuiRaycastObjects()
        {
            PointerEventData eventData = new PointerEventData(eventSystem);
            eventData.pressPosition = Input.mousePosition;
            eventData.position = Input.mousePosition;
    
            List<RaycastResult> list = new List<RaycastResult>();
            graphicRaycaster.GetComponent<GraphicRaycaster>().Raycast(eventData, list);
            Debug.Log(list.Count);
            return list.Count > 0;
        }
  • 相关阅读:
    iOS7's subview trimmed if out of parent view bounds
    iOS 7 — navigationController is setting the contentInset and ContentOffset of my UIScrollView
    友盟统计-页面访问路径
    iOS-Get the NSString height in iOS 7
    php
    How to Install Laravel PHP Framework on CentOS 7 / Ubuntu 15.04
    apache-.htaccess
    ios-member center
    lamp
    mysql
  • 原文地址:https://www.cnblogs.com/Study088/p/7903082.html
Copyright © 2011-2022 走看看