UGUI案例篇第(二)节拓展篇二 :UGUI三种实现规则与不规则图形Button精准点击效果的策略

本文介绍了Unity UGUI中实现规则与不规则图形Button精准点击的三种策略,包括官方解决方案、Ray-Crossing算法和PolygonCollider2D方法,详细解析了每种方法的实现原理、步骤、优缺点,并提供了项目工程链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


(一) 为什么需要精准点击?


   图 1:没有进行点击效果精准化时的圆形button点击效果(绿色button):
在这里插入图片描述


   图2:实现点击效果精准化时的圆形button点击效果(蓝色button):
在这里插入图片描述

     许多游戏项目之中我们的技能,或者是一些设置按钮,这些功能按钮可能不是像正常的矩形形状 (例如圆形) ,但是他们的响应区域依旧是 rect矩形区域(例如上图1),这时我们需要一些策略进行实现 点击效果精准化 (实现效果如上图2)。




(二) 3种实现规则与不规则图形Button精准点击效果的方案



  了解了为什么需要点击精准化之后,我们接下来进行介绍3种实现规则与不规则图形Button精准点击效果的方案:


1. 所有图形button都适用的官方解决方案。


实现原理

    官方解决方案为自己需要制作自己的button的形状图片,之后由于形状图片区域与图片矩形区域有留白区域(如图三),这些留白区域
都会在unity中显示为透明,因此官方根据我们点击的button的点对应于图片位置的这个透明度设置了我们可利用的参数 (alphaHitTestMinimumThreshold),当我们点击button区域的透明度小于这个参数值,我们的点击将没有任何响应,只有透明度大于这个参数才会有响应。


图三:
在这里插入图片描述


实现步骤


(1)首先你想做成的button形状与Texture的图形必须是匹配的(不能你想做成一个圆形的,还用的是画面全铺的矩形状texture),图片的图形区域与矩形图片区域有留白(作为Alpha 通道),之后勾选图片的Read/Write Enabled属性。

在这里插入图片描述


(2) 将图片改为Sprite格式,之后赋予button即可,之后编写代码设置GetComponent().alphaHitTestMinimumThreshold
设置之后unity就知道了在这个button范围内区域如果点击想响应的话,这个区域的的透明度必须大于alphaHitTestMinimumThreshold的值,小于则不进行响应。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值