Unity3D NGUI刮刮卡效果
线上效果

确保你的纹理的read/write 是勾选的,纹理格式是 RGBA32的
//代码
using UnityEngine; [RequireComponent(typeof(UITexture))]
public class ChangeTexturePixel : MonoBehaviour {
private UITexture mUITex;
private Texture2D MyTex;
public int Radius = 10;
public Color Col = new Color(0,0,0,0);
void Awake()
{
mUITex = GetComponent<UITexture>();
var tex = mUITex.mainTexture as Texture2D;
MyTex = new Texture2D(tex.width, tex.height, tex.format, false);
MyTex.SetPixels(tex.GetPixels());
MyTex.Apply();
mUITex.mainTexture = MyTex;
} void ChangePixelColorByCircle(int x, int y, int radius, Color col)
{
for (int i = -Radius; i < Radius; i++)
{
var py = y + i;
if (py < 0 || py >= MyTex.height)
{
continue;
} for (int j = -Radius; j < Radius; j++)
{
var px = x + j;
if (px < 0 || px >= MyTex.width)
{
continue;
}
if (new Vector2(px - x, py - y).magnitude > Radius)
{
continue;
}
MyTex.SetPixel(px, py, Col);
}
}
MyTex.Apply();
} int[] WorldPos2Pix(Vector3 worldPos)
{
var temp = transform.InverseTransformPoint(worldPos);
var pos = new Vector2(temp.x+mUITex.width/2,temp.y+mUITex.height/2);
float rateX = mUITex.width / (float)MyTex.width;
float rateY = mUITex.height / (float)MyTex.height; return new []
{
(int)(pos.x / rateX), (int)(pos.y/rateY)
}; } void Update ()
{
if (Input.GetMouseButton(0))
{
Vector3 worldPos = UICamera.currentCamera.ScreenToWorldPoint(Input.mousePosition);
var posA = WorldPos2Pix(worldPos);
ChangePixelColorByCircle(posA[0], posA[1], Radius, Col);
}
}
}
Unity3D NGUI刮刮卡效果的更多相关文章
- qt qml 刮刮卡效果
用canvas+mouseArea实现的刮刮卡效果. 表层是一层色彩,用手指划开,可看到下面的文字Lisence: MIT, 请保留本文档说明Author: surfsky.cnblogs.com 2 ...
- Html5实现移动端、PC端 刮刮卡效果
刚从南方回来就分了一个刮刮卡效果的页面,特么的我在烦恼怎么用H5去实现这个效果呢,好不容易写出来了,产品居然说:“既然你可以写出来这个效果那当然好了,开始我只是打算让你实现点击就出现呢!”… … 尼玛 ...
- 用BlendFunc实现舞台灯光和刮刮卡效果
[转]http://code.lovemiao.com/?p=136#more-136 之前写过一篇<不规则形状按钮的点击判定>,利用了CCRenderTexture创建一块画布,可以在上 ...
- 使用HTML5实现刮刮卡效果
你玩过刮刮卡么?一不小心可以中奖的那种.今天我给大家分享一个基于HTML5技术实现的刮刮卡效果,在PC上只需按住鼠标,在手机上你只需按住指头,轻轻刮去图层就可以模拟真实的刮奖效果. 我们利用HTML5 ...
- Android 自定义View修炼-【2014年最后的分享啦】Android实现自定义刮刮卡效果View
一.简介: 今天是2014年最后一天啦,首先在这里,我祝福大家在新的2015年都一个个的新健康,新收入,新顺利,新如意!!! 上一偏,我介绍了用Xfermode实现自定义圆角和椭圆图片view的博文& ...
- Android 自定义控件实现刮刮卡效果 真的就只是刮刮卡么
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40162163 , 本文出自:[张鸿洋的博客] 很久以前也过一个html5的刮刮卡 ...
- Android 自己定义控件实现刮刮卡效果 真的就仅仅是刮刮卡么
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40162163 , 本文出自:[张鸿洋的博客] 非常久以前也过一个html5的刮刮 ...
- canvas实现刮刮卡效果
canvas实现刮刮卡效果 实现步骤: 设置页面背景图,即刮刮卡底部图片 绘制canvas 刮刮卡顶部图片drawImage 绑定事件 addEventListener touchstart.tou ...
- 【Android - 自定义View】之自定义View实现“刮刮卡”效果
首先来介绍一下这个自定义View: (1)这个自定义View的名字叫做 GuaguakaView ,继承自View类: (2)这个View实现了很多电商项目中的“刮刮卡”的效果,即用户可以刮开覆盖层, ...
- js-刮刮卡效果,由jquery-eraser源码改的vue组件
vue-eraser 一款用于vue刮刮卡的组件 github地址: vue-eraser npm地址: vue-eraser 在网上有看到过几个版本的组件,都有点问题 1.拉快了,就会断,连不起来( ...
随机推荐
- 栈的理解以及如何计算程序所需栈的大小并在IAR中设置栈
文章首发于浩瀚先森博客 #栈的理解 一个程序大体上讲都是由变量和函数组合而成,变量有全局变量和局部变量,还有函数间传值的参数以及返回值. Stack是为了程序运行过程中临时保存所需数据而在内存里分配的 ...
- 获取使用ClickOnce部署的应用程序的版本号
引子 在编写使用ClickOnce部署的应用程序时,需要在程序的标题栏.软件变更记录.软件关于等页面读取显示当前的版本号. 之前很傻瓜的做法就是在Resource中维护一个string值,在使用到的地 ...
- mysql服务器监控参数总结
1)主机健康监控:网络通信.软硬件错误.磁盘空间.内存使用 2)mysql健康监控: 服务端口(telnet尝试连接).mysqld和mysqld_safe进程.errorlog和复制状态 3)主机性 ...
- 第二次团队作业 -- 预则立&&他山之石
我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬涛 一.团队任务计划 周数 ...
- MyBatis的foreach标签与SUM函数同时使用
最近在项目中遇到一个,需要根据传入的存有id的list,计算值,再起别名 <if test="channelList != null and channelList.size()> ...
- Mysql 命令大全
1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root - ...
- Excel(Access)文件共享锁定数溢出(Error 3052)的解决方法
Excel或Access均可能会提示:文件共享锁定数溢出(Error 3052),主要版本为office 2003,在其他版本上未遇到.错误提示如下: Microsoft JET Database E ...
- MYSQL(一)
一,概述: 1,什么是数据库: 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库. 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL Serv ...
- PHP -- Perl风格正则表达式
1.正则表达式作为一个匹配的模版,是由原子(普通字符,例如a-z),有特殊功能的字符(元字符,例如*.+ 和?等),以及模式修正符三个部分组成.2.在于Perl兼容的正则表达式函数中使用模式时一定要给 ...
- CodeForces 165C Another Problem on Strings(组合)
A string is binary, if it consists only of characters "0" and "1". String v is a ...