UGUI三种实现规则与不规则图形Button精准点击效果的策略)
(一) 为什么需要精准点击?
图 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的值,小于则不进行响应。