using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections.Generic;
public class UITouchEvents : MonoBehaviour
{
public EventSystem eventSystem;
public GraphicRaycaster graphicRaycaster;
static UITouchEvents uie;
private PointerEventData eventData;
private List<RaycastResult> list = new List<RaycastResult> ();
public static UITouchEvents Instance {
get {
if (null == uie) {
uie = FindObjectOfType (typeof(UITouchEvents)) as UITouchEvents;
}
return uie;
}
}
// Use this for initialization
void Start ()
{
eventData = new PointerEventData (eventSystem);
}
public bool CheckGuiRaycastObjects ()
{
list.Clear ();
eventData.pressPosition = Input.mousePosition;
eventData.position = Input.mousePosition;
graphicRaycaster.Raycast (eventData, list);
Debug.Log ("CheckUGUIOBJ" + ":" + list.Count + "---------------------");
return list.Count > 0;
}
}
在容易穿透的地方调用
CheckGuiRaycastObjects ()函数判断返回值如果true就说明穿透了
|
|
|
|
|
|