Unity自身提供的方案
1、将图片设置为可读写(影响性能,增加内存占用)
image.png
2、设置图片的透明度点击级别,默认是0,设置成0.1表示透明度低于0.1的区域点击不响应。
GetComponent<Image>().alphaHitTestMinimumThreshold = 0.1f;
自定义方案
1、添加Polvgon Colider 2D组件,创建可点击区域。
2、添加button组件
3、添加实现代码
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;
}
}
public override bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera)
{
Vector3 point;
RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, screenPoint, eventCamera, out point);
return Polygon.OverlapPoint(point);
}
}
利用这个思路可以做哪找物品的小游戏。
网友评论