ug图改变颜色_unity改变image透明度

ug图改变颜色_unity改变image透明度UGUI图片将其他颜色去除,显示灰色图片本例适用于UGUI一般项目中会有一些图标,当你拥有该图标显示为彩色图标,一般项目中最占资源的就是图片,不允许添加一张彩色图片,一张灰色图片,必须通过一些方法将彩色图标的颜色去掉,获取图标的灰色值。UGUI自带了一个Shader,Sprites/Default,默认给了一个添加该Shader的材质球 1Shader”U


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
UGUI 图片将其他颜色去除,显示灰色图片

本例适用于 UGUI

一般项目中会有一些图标,当你拥有该图标显示为彩色图标,一般项目中最占资源的就是图片,不允许添加一张彩色图片,一张灰色图片,必须通过一些方法将彩色图标的颜色去掉,获取图标的灰色值。

UGUI 自带了一个Shader, Sprites/Default, 默认给了一个添加该Shader 的材质球

 

 1 Shader "UISprites/DefaultGray"
 2 {
 3     Properties
 4     {
 5         [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
 6         _Color ("Tint", Color) = (1,1,1,1)
 7         [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
 8 
 9         //---Add---
10         // Change the brightness of the Sprite
11         _GrayScale ("GrayScale", Float) = 1
12         //---Add---
13     }
14 
15     SubShader
16     {
17         Tags
18         { 
19             "Queue"="Transparent" 
20             "IgnoreProjector"="True" 
21             "RenderType"="Transparent" 
22             "PreviewType"="Plane"
23             "CanUseSpriteAtlas"="True"
24         }
25 
26         Cull Off
27         Lighting Off
28         ZWrite Off
29         Blend One OneMinusSrcAlpha
30 
31         Pass
32         {
33         CGPROGRAM
34             #pragma vertex vert
35             #pragma fragment frag
36             #pragma multi_compile _ PIXELSNAP_ON
37             #include "UnityCG.cginc"
38 
39             struct appdata_t
40             {
41                 float4 vertex   : POSITION;
42                 float4 color    : COLOR;
43                 float2 texcoord : TEXCOORD0;
44             };
45 
46             struct v2f
47             {
48                 float4 vertex   : SV_POSITION;
49                 fixed4 color    : COLOR;
50                 half2 texcoord  : TEXCOORD0;
51             };
52 
53             fixed4 _Color;
54 
55             v2f vert(appdata_t IN)
56             {
57                 v2f OUT;
58                 OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);
59                 OUT.texcoord = IN.texcoord;
60                 OUT.color = IN.color * _Color;
61                 #ifdef PIXELSNAP_ON
62                 OUT.vertex = UnityPixelSnap (OUT.vertex);
63                 #endif
64 
65                 return OUT;
66             }
67 
68             sampler2D _MainTex;
69             float _GrayScale;
70 
71             fixed4 frag(v2f IN) : SV_Target
72             {
73                 fixed4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
74 
75                 //---Add--
76                 float cc = (c.r * 0.299 + c.g * 0.518 + c.b * 0.184);
77                 cc *= _GrayScale;
78                 c.r = c.g = c.b = cc;
79                 //---Add--
80 
81                 c.rgb *= c.a;
82                 return c;
83             }
84         ENDCG
85         }
86     }
87 }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194159.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • C#生成ANSI编码格式的文件[通俗易懂]

    C#生成ANSI编码格式的文件[通俗易懂]使用GB2312以代表ANSI编码stringfileName=”D:\\1234.txt”;StreamWritersw=newStreamWriter(fileName,false,Encoding.GetEncoding(“GB2312”));sw.WriteLine(“col1,col2,col3”);sw.WriteLine(“繁體中文,2,3”);sw.WriteLine(“简体中文,2,3”);sw.WriteLine(“English,2,3”);sw.C

    2022年9月16日
  • python读取图片文件名_python 获取图片并自动命名保存

    python读取图片文件名_python 获取图片并自动命名保存#-*-coding:UTF-8-*-#导入第三方库importurllibfrombs4importBeautifulSoupimportrequestsimportosimporttimeimportrandom#获取文件夹,如果文件夹不存在则创建新文件夹ifos.path.isdir(‘E://biaoqing//’):passelse:os.mkdir(‘E…

    2022年9月4日
  • PyCharm将py文件文件生成可exe可执行文件[通俗易懂]

    PyCharm将py文件文件生成可exe可执行文件[通俗易懂]1.安装pyinstraller工具2.在PyCharm最下方找到终端,在终端输入pyinstaller-F–onefilexxx.py

    2022年8月27日
  • Struts2拦截器详解

    Struts2拦截器详解成功的花儿,其间浸透了奋斗的泪水和汗水;然而,用泪水和汗水就可以实现一切的美好。Struts2拦截器概述拦截器的概念是在Struts2里面有的。在其它地方没有。Struts2是框架,封装了很多的功能,struts2里面封装的功能都是在拦截器里面。Struts2里面封装了很多的功能,有很多拦截器,不是每次这些拦截器都执行,每次执行默认的拦截器。Struts2里面默认的拦截器位置:struts

    2022年10月7日
  • linux服务器负载均衡配置_分布式系统如何负载均衡

    linux服务器负载均衡配置_分布式系统如何负载均衡因项目需要最近研究了下Linux红帽6.5下实现Apache负载均衡的问题。从干净的环境说起。   1、安装JDK环境       首先下载linux版本的JDK,我使用的是jdk-6u24-linux-x64-rpm.bin,并将该文件上传至服务器的指定目录。       chmod777jdk-6u24-linux-x64-rpm.bin修改文件的操作权限;   

    2022年9月9日
  • 怎么保证RabbitMQ和kafuka集群的高可用性?

    怎么保证RabbitMQ和kafuka集群的高可用性?rabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式 RabbitMQ的高可用性 RabbitMQ是比较有代表性的,因为是基于主从做高可用性的,我们就以他为例子讲解第一种MQ的高可用性怎么实现。 rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式 1)单机模式 就是demo级别的,一般就…

    2022年6月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号