using UnityEngine; using UnityEngine.UI; [RequireComponent (typeof (Image), typeof (Collider2D))] public class ColliderMask : MonoBehaviour, ICanvasRaycastFilter { Image m_Image; Collider2D m_Collider; void Awake () { m_Image = GetComponent (); m_Collider = GetComponent (); } bool ICanvasRaycastFilter.IsRaycastLocationValid (Vector2 sp, Camera eventCamera) { Vector3 point = Vector3.zero; if (RectTransformUtility.ScreenPointToWorldPointInRectangle (m_Image.rectTransform, sp, eventCamera, out point)) { return m_Collider.OverlapPoint (new Vector2 (point.x, point.y)); } else { return false; } } }