[原]NGUI之按钮置灰

传统按钮置灰,需要使用另外一张纹理。

本例通过修改shader和NGUI sprite的r值实现按钮置灰。优势:节省纹理,操作简单

将NGUI Unlit/Transparent Colored片段部分改成如下:fixed4 frag (v2f i) : COLOR
{
    fixed4 col= tex2D(_MainTex, i.texcoord) * i.color;
    if(i.color.r < 0.0001)
    {
        float grey = dot(col.rgb, float3(0.299, 0.587, 0.114));
        col.rgb = float3(grey, grey, grey);
    }
    return col;
}说明:其中(0.299,0.587,0.114)为灰度公式的参数

使用时仅需将sprite的颜色R值设置为0即可!

参考资料:NGUI之UIButton"禁用"状态时置灰

[原]NGUI之按钮置灰

时间: 2024-11-09 03:27:16

[原]NGUI之按钮置灰的相关文章

jQuery按钮置灰及恢复

<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>DOM0级添加</title> <style type="text/css"> input{ height: 20px; width: 80px; border: 1px; } #addo{ background-color: blue; } </style

android 按钮置灰效果

通过设置可点击  和颜色实现 package com.yqy.yqy_button; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; pub

Cocos2dx-- 图片置灰实现

前言:游戏中有很多按钮控件,它们一般会有选中和未选中2种状态.我们如果要区分这两种状态的表现,很多时候是直接叫美术给两种状态下的资源,或直接setColor设置颜色.这样无疑增加了资源的大小或不美观(看需求).本节将介绍怎么通过opengl es程序来实现图片置灰操作. 注:这个置灰操作是基于Cocos-Lua的,具体原理分析这里不打算介绍,主要讲如何实现. 实现步骤 Lua端操作: 1,置灰Lua代码(ShaderEffect.lua) local ShaderEffect = { vertD

【每日一记】unity3d 图片置灰shader

项目需要,参考了一下网上的资料,写了一个shader,给按钮置灰. shader具体实现如下: Shader "Transparent Colored Gray" { Properties { _MainTex ("Base (RGB), Alpha (A)", 2D) = "white" {} } SubShader { LOD 200 Tags { "Queue" = "Transparent" &qu

cocos2dx3.X shader使图片置灰

1 OpenGL ES着色器 opengl es的着色器有.fsh和.vsh两个文件.这两个文件在被编译和链接后就可以产生可执行程序与GPU交互.attribute是从外部传进来的,每一个顶点都会有这两个属性,所以它也叫做vertex attribute(顶点属性).而varying类型的变量是在vertex shader和fragment shader之间传递数据用的. .vsh 是 vertex shader,用与顶点计算,可以理解控制顶点的位置,在这个文件中我们通常会传入当前顶点的位置,和

unity UI置灰(转载)

Unity3D开发(二):NGUI之UIButton"禁用"状态时置灰 分类: Unity3D开发2013-09-30 18:51 7024人阅读 评论(5) 收藏 举报 目录(?)[+] NGUI中的Button几乎是最常用到的控件之一,并且可以组合各种组件(比如UIButtonColor,UIButtonOffset,UITweenxx),方便设置Button的各种状态下的属性,几乎可以满足我们的所有需求. 但是对于当Button的isEnabled属性设置为false时,根据设置

【有意思的BUG】默认置灰的属性的值传递

数据由Client发送给Server,如下图所示,Server在收到请求后会响应Client. 比如Client发送给Server一组数据:Name:sean&Hobby:movies&City:Peking&Country:China 有如下表单: 可以看到"China"是默认置灰的属性的值,不允许手动输入,所以用户只需要填写"Name"."Hobby"."City"这三项,然后点击最下面的"

安装VMware 置灰正确解决办法

昨天在虚拟机vmwarw14下安装xp系统和win8系统,步骤如下: 1.vm官网下载vm14安装包,在D盘新建文件夹VM,安装包放在此文件夹下 2.下载xp系统镜像,不需要解压,安装的时候直接使用 3.根据文档在vm虚拟机下安装xp系统,安装的时候可以在D盘新建文件夹xp,放置xp镜像 在安装win8系统时有提示安装vmwaretools,当时直接叉掉了,后来查看虚拟机设置显示安装vmwaretools一直是灰色的,百度了很久,解决办法大部分都是: 在虚拟机中,选用硬件->CD/DVD选项加载

置灰GridView 的disable Item

如果想要disable掉GridView中的item,需要做如下两件事情: 1. override Adapter 的 areAllItemsEnabled 2. override Adapter 的 isEnabled(int position) 3. 另外如果想在disable的时候,置灰对应的item,那么只需要在getView方法中,设置对应View的alpha值即可. 比如: class MyAdapter extends BaseAdapter { @Override public