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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IP地址分类以及子网划分「建议收藏」

    IP地址分类以及子网划分「建议收藏」IP地址:是网络层的概念,IP地址长度为32位,分为四个8位,用点分十进制来表示,每部分范围0~255(0~255.0~255.0~255.0~255)。一个可有2的32次方个IP地址。1、IP地址的分类最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B

    2022年5月7日
    53
  • plsql格式化sql语句_notepad格式化sql

    plsql格式化sql语句_notepad格式化sql有时候有些语句特别长的时候,可读性特别差,这时候我们不妨可以使用plsql自带的快速格式化语句功能,帮助我们快速格式化语句未格式化前格式化后 …

    2022年10月12日
    2
  • 浏览器 兼容性 问题记录集

    浏览器 兼容性 问题记录集

    2021年7月9日
    74
  • Java中finalize方法

    Java中finalize方法前沿:在面试过程中我们可能会被问到final、finally、finalize的区别?本篇文章将介绍finalize的简单用法。Finalize()是Object类的方法。在回收垃圾对象之前调用此方法。finalize()方法将重写以处理系统资源,执行清理活动并最大程度地减少内存泄漏。简单来说可在释放对象前进行某些操作。代码举例:…

    2026年1月27日
    5
  • tfs安装教程_2010版cad安装步骤

    tfs安装教程_2010版cad安装步骤安装过程:  一、安装操作系统  安装Windows2008R2简体中文版  二、准备安装过程中的需要的用户账户,并设置相应权限  具体流程如下:  1、点击“开始”——“管理工具”——“计较机管理”  2、选择“本地用户和组”——“用户”,在右边空白处点击右键,选择“新用户”  3、分别添加名为TFSREPORTS、TFSSERVICE、TFSBUILD、TFS…

    2025年12月1日
    7
  • python中bool函数_bool()函数以及Python中的示例

    python中bool函数_bool()函数以及Python中的示例python中bool函数Pythonbool()函数(Pythonbool()function)bool()functionisusedtoconvertagivenvaluetotheBooleanvalue(TrueorFalse)asperthestandardtruthtestingprocedures.Itacceptsa…

    2022年6月4日
    30

发表回复

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

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