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


相关推荐

  • 了解DeepFakes背后的技术

    了解DeepFakes背后的技术1.神经网络和自动编码器简介神经网络概论在计算机科学中,人工神经网络由成千上万个以特定方式连接的节点组成。节点通常分层排列;它们的连接方式决定了网络的类型,最终决定了网络在另一网络上执行特定计算任务的能力。传统的神经网络可能看起来像这样:输入层中的每个节点(或人工神经元)都包含一个数值,该数值对我们要馈送到网络的输入进行编码。如果我们要预测明天的天气,则输入节点可能包含以范围内的数字编码的压力,温度,湿度和风速\left[-1,+1\right]。这些值被广播到下一层。有趣的是,每个边缘

    2022年5月25日
    43
  • ARM9开发之学习过程总结[通俗易懂]

    ARM9开发之学习过程总结[通俗易懂]时至今日,与心爱的TQ2440相伴已有一年,从当初的一无所知到今天的得心应手,其间经历的种种,实在难以言表。这里先将我学习ARM中的整个过程总结一下,希望对刚接触的朋友有个提示作用,也希望高手不吝赐教,欢迎拍砖^_^。需要说明的是,这仅仅说是ARM,其间涉及到别的知识也是需要很多时间去学习的,这里我就不列举了。开发板的配套光盘有很多资料文档,在学习之前,大概浏览一下是非常不错的,强烈建议,特别是S3

    2022年6月10日
    54
  • 为什么学习web前端开发?

    本文主要分析web开发的相关方向及技术,为想投入web开发的同学提供下参考。什么是WEB开发说到WEB开发就不得不提两种架构模式,B/S架构和C/S架构。互联网发展初期,大多数系统都是C/S架构,C代表客户端,S代表服务器,常见的软件,比如QQ(WEB版的不算),都是采用这种架构模式。这种架构模式通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以

    2022年4月11日
    69
  • countdowntimer_TIMESTAMPDIFF

    countdowntimer_TIMESTAMPDIFF需求:加载某一个界面,在页面中待5秒后再关闭效果图如下:设置了一个点击事件,当文字显示为Skipactivity时,点击跳转界面。代码及介绍如下图:核心功能代码如下Android自带的CountDownTimer这个工具类,也是通过Handler和子线程来实现的。//倒计时工具类CountDownTimer//CountDownTimer的构造方法有两个参数…

    2022年9月18日
    2
  • unity c++ c#(3d加工编程软件)

    一、前言这篇文章主要是给零基础想要Unity入门的关于C#编程的一些意见二、参考文章unity中的C#编程-零基础(Unity2017)三、正文1.什么是C#编程语言?微软官方出版2.编程工具(IDE)3.创建第一个C#代码4.场景的保存和脚本的保存5.关于日志输出(指控制输出,其中Log有三类:正常、警告、错误输出)6.变量7.方法的定义和调…

    2022年4月14日
    53
  • calico跨网段不通_多对网桥ip地址相同

    calico跨网段不通_多对网桥ip地址相同Calico简介Calico是一个基于BGP协议的网络互联解决方案。它是一个纯3层的方法,使用路由来实现报文寻址和传输。相比flannel,ovs等SDN解决方案,Calico避免了层叠网络带来的性能损耗。将节点当做router,位于节点上的container被当做router的直连设备。利用Kernel来实现高效的路由转发。节点间的路由信息通过BGP协议在…

    2025年7月29日
    4

发表回复

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

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