UGUI不规则按钮实现思路
根据图片的透明度来判断是否点击到了适当区域(如果a值是0,说明完全透明,则判断为没点击,否则判断为触发点击)
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Demo : Image
{
Image image;
void Start()
{
image = GetComponent<Image>();
}
public override bool IsRaycastLocationValid(Vector2 V, Camera C) //继承Image并重写Image的这个方法 QQ 745701540
{
float a = ;
if (Input.GetMouseButtonDown())
{
//--------------------------------------------------------
//鼠标坐标
float x, y;
x = Input.mousePosition.x;
y = Input.mousePosition.y;
//图片的实际宽高
Rect R = new Rect();
R.x = image.rectTransform.rect.width;
R.y = image.rectTransform.rect.height;
//图片左下角坐标
Vector2 v_you = image.rectTransform.position - new Vector3(R.x / , R.y / ); //真实像素点颜色值
int x_z, y_z; x_z = (int)((x - v_you.x) / R.x * image.preferredWidth);//像素宽高比实际宽高
y_z = (int)((y - v_you.y) / R.y * image.preferredHeight); a = image.sprite.texture.GetPixel(x_z, y_z).a;
}
if (a > )
{
Debug.Log("S");
return true;
}
else
return false;
}
}
将脚本赋给Image图片,然后将图片的格式改为Advanced, 勾上Read/Write Enabled。
因为继承了Image,所以脚本上也会出现Raycast Target等一系列属性,勾掉它,否则加上Image的,相当于两个触发,点击一次会触发两次方法。
UGUI不规则按钮实现思路的更多相关文章
- UGUI之不规则按钮的响应区域
比如一些不规则按钮最好可以设置它的响应区域.如下图所示,用Polygon Collider2D组件圈出精灵响应事件的区域. 注意 IsRaycastLocationValid 的判断区域是RectTr ...
- Unity不规则按钮点击区域(UGUI)
文章目录 一. 前言 二. 最终效果 三. 实现 1.创建UICamera 2. UIPolygon节点 3. 编辑碰撞区域 5. 运行测试 6. UIPolygon代码 一. 前言 游戏开发中,可能 ...
- 【Unity游戏开发】UGUI不规则区域点击的实现
一.简介 马三从上一家公司离职了,最近一直在出去面试,忙得很,所以这一篇博客拖到现在才写出来.马三在上家公司工作的时候,曾处理了一个UGUI不规则区域点击的问题,制作过程中也有一些收获和需要注意坑,因 ...
- iOS 开源一个高度可定制支持各种动画效果,支持单击双击,小红点,支持自定义不规则按钮的tabbar
TYTabbarAnimationDemo 业务需求导致需要做一个tabbar,里面的按钮点击带有动画效果,tabbar中间的按钮凸出,凸出部分可以点击,支持badge 小红点等,为此封装了一个高度可 ...
- [示例] Firemonkey 不规则按钮实做
利用 Firemonkey 控件的组合及可塑性,可以做出千变万化的效果及功能,下面展示一个不规则按钮的实做: 效果图: 实做方法: 开一个新工程 Multi-Device Application 放一 ...
- 源码推荐(7.17):不规则按钮类似于遥控器按钮,一个可以最大程度简化PageView与TabView切换的第三方框架
不规则按钮,类似于遥控器按钮,可以单独控制按钮的上下左右(作者:masa_chu) 不规则按钮,类似于遥控器按钮,可以单独控制按钮的上下左右 测试环境:Xcode 6.2,iOS 6.0以上 Lazy ...
- Qt5:不规则按钮的实现---通过贴图实现
在应用开发中,有时候为了美观会在UI界面中增加不规则的按钮 现在我们就来看看Qt中是怎么实现不规则按钮的 /////////////////////////////////////////////// ...
- ngui处理不规则按钮点击
吐个槽 棋牌类游戏做什么中国地图!!! 然后就要用到不规则按钮点击了 你懂的 213的unity虽然已经加入了polygoncollider 2d的支持 但是 但是 但是 是2d的 也就是说如果不 ...
- Unity 不规则按钮实现
1.先重写Image类,实现对Image图形范围的重写: 2.对不规则按钮添加Polygon Collider2D组件,调整大小圈中要点击的范围: 3.将重写的Image类添加到不规则按钮上时,需要移 ...
随机推荐
- 【linux】umask
1.默认情况下的umask值是022 [root@andon ~]# umask 0022 2.umask作用 默认文件权限:666(linux创建文件默认无执行权限)-umask =644(6-0 ...
- 【python】禁止print输出换行的方法
print后用一个逗号结尾就可以禁止输出换行,例子如下 >>> i=0 >>> while i < 3: print i i+=1 0 1 2 禁止输出换行后 ...
- php 添加redis扩展(二)
php代码操作redis 1.连接 <?php //连接本地的 Redis 服务 $redis = new Redis(); $redis->connect('127.0.0.1', 63 ...
- SSH_框架整合6--修改Edit员工信息
SSH_框架整合6--修改Edit员工信息 1 加上修改Edit键 (1)emp-list.jsp <td> <a href="emp-input?id=${id }&qu ...
- Python 上传和更新函数模块到PyPI
1. update setup.py from distutils.core import setup setup( name = 'iamericnester', version = '1.4.0' ...
- nginx的https配置
测试自签名的ssl证书 首先执行如下命令生成一个key openssl genrsa -des3 - 然后他会要求你输入这个key文件的密码.不推荐输入.因为以后要给nginx使用.每次reload ...
- C语言每日一题之No.4
这几天老大也没安排我什么项目,于是想正好趁着空补C.当然,是利用晚上加班时间,白天正常上班时间还是学习公司的平台. 今儿个突然弱弱的感觉到在公司补C是件很低级的事情,哪怕是在加班时间都会被喷,因为大家 ...
- dede图片横向滚动
<div id=demo style="overflow:hidden; width:960px;" > <table border=0 align=" ...
- Linux命令(18)查看当前用户who、whoami、who am i
首先看命令的使用情况: [@sjs_9_108 ~]$ whoami spider [@sjs_9_108 ~]$ who am i spider pts/ -- : (192.168.1.1) [@ ...
- mysql server has gone away 与max_allowed_packed
今天在本地测试测试给所有店铺批量发信息的功能,大约2万条记录,在本地和备用linux服务器上测试都没有问题,但上windows时一直报mysql server has gone away的错误,搜索一 ...