第一种方式:判断图片的alpha值
http://t.csdn.cn/HZsNR
第二种方式:通过PolygonCollider判断
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 多边形Image组件
/// </summary>
[RequireComponent(typeof(PolygonCollider2D))]
public class PolygonImage : Image
{
protected PolygonImage()
{
}
/// <summary>
/// 2D多边形碰撞器
/// </summary>
PolygonCollider2D m_polygonCollider2D;
protected override void Awake()
{
m_polygonCollider2D = GetComponent<PolygonCollider2D>();
}
protected override void OnPopulateMesh(VertexHelper vh)
{
base.OnPopulateMesh(vh);
}
public override bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera)
{
Vector3 worldPos;
RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, screenPoint, eventCamera, out worldPos);
return m_polygonCollider2D.OverlapPoint(worldPos);
}
}