UGUI_不规则图片点击事件处理
来源:互联网 发布:硬盘播放器 知乎 编辑:程序博客网 时间:2024/05/19 16:36
项目中,有可能会遇到图片不是方形的。比如是圆形的。这个时候,我们希望鼠标点击到圆形的部分,才算点击。点击到方形的空白部分不算点击
可能有这样的需求。
那这个时候,如果按照UGUI的正常图片的处理,是把四个角的透明区域也算作是点击的区域了。也就是UGUI默认的点击区域是图片的周围大小。如果遇到上面需求。我们可以按照下面步骤来处理。
原理:
UGUI在处理控件是否被点击的时候,在检测图片的时候,会调用Image的IsRaycastLocationValid( )方法
该方法会获取当前图片点击点的透明度,如下代码片段
try
{
return sprite.texture.GetPixelBilinear(x, y).a >= m_EventAlphaThreshold;
}
catch (UnityException e)
{
Debug.LogError("Using clickAlphaThreshold lower than 1 on Image whose sprite texture cannot be read. " + e.Message + " Also make sure to disable sprite packing for this sprite.", this);
return true;
}
只有当前点击的图片的当前点的透明度超过了设置的m_EventAlphaThreshold阈值。才返回真。返回真的情况下,这个UI控件才表示被点击了。
所以,我们可以来修改这个值。这个值是 0-1之间的。
但是,我们同时又看到它catch了一个异常。这个异常是要求我们对图片进行处理。图片不能以Sprite的形式导入。需要使用如下设置
也就是把图片设置成可读写的。
设置好了图片之后,来编写代码
这样就修改了图片的点击时候,判断是否真的点击到图片内容了。可以过滤掉透明的像素。只有点击到有颜色的地方,才算是真实的点击
可能有这样的需求。
那这个时候,如果按照UGUI的正常图片的处理,是把四个角的透明区域也算作是点击的区域了。也就是UGUI默认的点击区域是图片的周围大小。如果遇到上面需求。我们可以按照下面步骤来处理。
原理:
UGUI在处理控件是否被点击的时候,在检测图片的时候,会调用Image的IsRaycastLocationValid( )方法
该方法会获取当前图片点击点的透明度,如下代码片段
try
{
return sprite.texture.GetPixelBilinear(x, y).a >= m_EventAlphaThreshold;
}
catch (UnityException e)
{
Debug.LogError("Using clickAlphaThreshold lower than 1 on Image whose sprite texture cannot be read. " + e.Message + " Also make sure to disable sprite packing for this sprite.", this);
return true;
}
只有当前点击的图片的当前点的透明度超过了设置的m_EventAlphaThreshold阈值。才返回真。返回真的情况下,这个UI控件才表示被点击了。
所以,我们可以来修改这个值。这个值是 0-1之间的。
但是,我们同时又看到它catch了一个异常。这个异常是要求我们对图片进行处理。图片不能以Sprite的形式导入。需要使用如下设置
也就是把图片设置成可读写的。
设置好了图片之后,来编写代码
这样就修改了图片的点击时候,判断是否真的点击到图片内容了。可以过滤掉透明的像素。只有点击到有颜色的地方,才算是真实的点击
0 0
- UGUI_不规则图片点击事件处理
- UGUI_不规则图片点击事件处理
- Unity UGUI不规则图片点击事件处理
- Unity3D UGUI不规则图片点击事件处理
- 不规则图片点击事件捕获
- 不规则图片的点击事件
- 有关不规则图片的点击响应事件和手势滑动闪退的处理d
- hitTest:方法练习 - 不规则区域点击事件处理
- Android ImageView图片透明区域不响应点击事件,不规则图片透明区域响应点击事件
- 不规则区域响应点击事件
- 不规则图片的点击响应
- UGUI_不规则按钮的响应区域
- 利用模拟点击事件处理图片上传
- iOS不规则控件的点击事件
- Android不规则布局并触发点击事件
- iOS不规则控件的点击事件(转载)
- iOS不规则控件的点击事件
- 不规则区域的点击事件判断
- java打包下载(新增递归压缩,指定路径压缩)
- Git 的origin和master分析
- 中科院分词系统 初始化失败
- FTP 550 Access is denied.
- 解决GAT首页乱码Bug
- UGUI_不规则图片点击事件处理
- OC 对ISO-8859-1编码格式的进行GZIP解压
- LUA与C++交互(在LUA脚本里调用C++函数传参)
- 2048小游戏
- python统一文件名小工具
- 小小理解动态代理
- 南阳理工269 VF动态规划
- hadoop参数配置
- yii model中切换数据库