NGUI 图片变灰

效果图

1、先准备好一个变灰shader。代码如下

Shader "Custom/Gray"
{
	Properties
	{
		_MainTex ("Base (RGB), Alpha (A)", 2D) = "black" {}
	}

	SubShader
	{
		LOD 200

		Tags
		{
			"Queue" = "Transparent"
			"IgnoreProjector" = "True"
			"RenderType" = "Transparent"
		}

		Pass
		{
			Cull Off
			Lighting Off
			ZWrite Off
			Fog { Mode Off }
			Offset -1, -1
			Blend SrcAlpha OneMinusSrcAlpha

			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			sampler2D _MainTex;
			float4 _MainTex_ST;

			struct appdata_t
			{
				float4 vertex : POSITION;
				float2 texcoord : TEXCOORD0;
				fixed4 color : COLOR;
			};

			struct v2f
			{
				float4 vertex : SV_POSITION;
				half2 texcoord : TEXCOORD0;
				fixed4 color : COLOR;
			};

			v2f o;

			v2f vert (appdata_t v)
			{
				o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
				o.texcoord = v.texcoord;
				o.color = v.color;
				return o;
			}

			fixed4 frag (v2f IN) : COLOR
			{
				float4 col =tex2D(_MainTex, IN.texcoord) * IN.color;
				float grey = dot(col.rgb, float3(0.299, 0.587, 0.114));
                col.rgb = float3(grey, grey, grey); 

				return col;
			}
			ENDCG
		}
	}

	SubShader
	{
		LOD 100

		Tags
		{
			"Queue" = "Transparent"
			"IgnoreProjector" = "True"
			"RenderType" = "Transparent"
		}

		Pass
		{
			Cull Off
			Lighting Off
			ZWrite Off
			Fog { Mode Off }
			Offset -1, -1
			ColorMask RGB
			Blend SrcAlpha OneMinusSrcAlpha
			ColorMaterial AmbientAndDiffuse

			SetTexture [_MainTex]
			{
				Combine Texture * Primary
			}
		}
	}
}

  

2、制作一个atlas图集prefab

  在Project里选择几个纹理右键->Open Atlas Maker->New->Create

3、修改prefab材质

  点击刚刚生成的atlas图集prefab->Material->导航到Project中我们刚生成的atlas图集prefab所使用的材质->把shader改成Custom/Cray(这个shader就是我们上面那个shader的名字)

4、设置到UISprite下看看

时间: 2024-07-31 22:32:22

NGUI 图片变灰的相关文章

c# winform 把彩色图片转换为灰色的图片,变灰,灰度图片,速度很快,safe,unsafe

把彩色图片转换为灰色的图片,直接用.net接口遍历每个像素点转换的效率非常低,800K的图片65万像素我的电脑要用5分钟,而用了unsafe,速度提高了几千倍,同样的图片只用了0.几秒 附一个常用的遍历像素点转换的代码 构造函数 C#代码   public Tphc() { InitializeComponent(); this.pictureBox1.ImageLocation = "F:\\黑色头发.jpg"; } 按钮单击事件 C#代码   private void button

Unity图片变灰的方式

http://www.tuicool.com/articles/Vruuqme NGUI中的Button差点儿是最经常使用到的控件之中的一个,而且能够组合各种组件(比方UIButtonColor,UIButtonOffset,UITweenxx),方便设置Button的各种状态下的属性.差点儿能够满足我们的全部需求. 可是对于当Button的isEnabled属性设置为false时,依据设置的disableColor属性设置不可点击时的颜色时,尽管我们设置的灰色,但并非我们想象中的样子! 设置的

CSS鼠标悬停图片上图片变灰 变色 半透明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

图片变灰

img{ filter:grayscale(100%); -webkit-filter:grayscale(100%); -moz-filter:grayscale(100%); -ms-filter:grayscale(100%); -o-filter:grayscale(100%); filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grays

让图片变灰

1 -webkit-filter: grayscale(1); 2 filter: gray; 3 filter: grayscale(1);

网站图片变灰的通用CSS解决方案

<style> html {  -webkit-filter: grayscale(100%);  -moz-filter: grayscale(100%);  -ms-filter: grayscale(100%);  -o-filter: grayscale(100%);  filter: grayscale(100%);  filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg

JAVA彩色图片变灰处理

File file = new File("F:/firefox.png"); File destFile = new File("F:/pic/" + System.currentTimeMillis() + ".png"); BufferedImage image = ImageIO.read(file); BufferedImage destImage = new BufferedImage(image.getWidth(), image.

css+js整站变灰(兼容IE7+)

历年大型地震等自然灾害来临过后,各大网站整站都变成灰色以悼念逝去的生命,那么这种整站变灰的效果是怎么做到的? 重写一套css?NO,即便你有这个时间重写,那网站内的图片怎么办?难道重做一遍?很明显工作量巨大不符合实际. 火狐和chrome浏览器比较简单,直接用css3搞定: <style type="text/css"> .demo{color: red;} body { filter: grayscale(100%);/*火狐*/ -webkit-filter:grays

tableViewCell上的图片点击,cell变灰,点击其它cell跳转的indexPath不对

在tableViewCell上有一张可以点击的图片,通过Target-Action给图片的imageView添加了点击事件. 但是,在点击图片实现放大效果的时候,图片的背景cell变灰,再次点击其它cell进行页面跳转时,协议方法中得indexPath是刚才点击图片的背景cell的indexPath,不是当前点击的 开始是在图片点击事件中 增加了让选中的cell失去选中状态,但是背景cell只是变灰了,没有选中的cell,所以这个方法不好用. 后来 在自定义的cell中增加了touchesBeg