方法一:通过设置alpha的值,小于0.1时,点击事件不生效
方法二:利用PolygonCollider2D组件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class CustomImage : Image
{
private PolygonCollider2D _polygon;
//属性
private PolygonCollider2D Polygon
{
get
{
if (_polygon == null)
{
_polygon = GetComponent<PolygonCollider2D>();
}
return _polygon;
}
}
//如果组允许射线投射,则返回 true。
public override bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera)
{
Vector3 point;
//将一个屏幕空间点转换为世界空间中位于给定 RectTransform 平面上的一个位置。
RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, screenPoint,eventCamera ,out point);
return Polygon.OverlapPoint(point);
}
}