#region Environment
Windows 10 22H2
Unity 2022.3.30f1 LTS
VSCode 1.90.0
// ToneTune Toolkit 下载地址
// https://github.com/MirzkisD1Ex0/ToneTuneToolkit.git
#endregion
把UGUI的元素去色!变成灰色!!!
超级方便!
// 该项功能已包含至ToneTuneToolkit插件
01.新建场景,新建一个Shader,取名为GreyscaleShader.shader,内容如下。
Shader "UI/GreyscaleShader"{Properties{[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}_Color("Tint", Color) = (1, 1,1 , 1)_Greyscale("Greyscale", Range(0, 1)) = 1[HideInInspector] _RendererColor("RendererColor", Color) = (1,1,1,1)[HideInInspector] _Flip("Flip", Vector) = (1,1,1,1)[PerRendererData] _AlphaTex("External Alpha", 2D) = "white" {}[PerRendererData] _EnableExternalAlpha("Enable External Alpha", Float) = 0}SubShader{Tags{"Queue" = "Transparent""IgnoreProjector" = "True""RenderType" = "Transparent""PreviewType" = "Plane""CanUseSpriteAtlas" = "True"}Cull OffLighting OffZWrite OffBlend SrcAlpha OneMinusSrcAlphaPass{CGPROGRAM#pragma vertex SpriteVert#pragma fragment frag#pragma target 2.0#pragma multi_compile_instancing#pragma multi_compile _ ETC1_EXTERNAL_ALPHA#include "UnitySprites.cginc"half _Greyscale;fixed4 frag(v2f IN) : SV_Target{fixed4 c = SampleSpriteTexture(IN.texcoord) * IN.color;c.rgb = lerp(c.rgb, dot(c.rgb, float3(0.3, 0.59, 0.11)), _Greyscale);c.rgb *= c.a;return c;}ENDCG}}Fallback "Sprites/Default"}
02.场景中新建一个UGUI,随便上张图作为测试用。
03.新建一个Materials,Shader选择刚刚创建的UI/GreyscaleShader。
04.将Materials赋给UGUI,Greyscale可以对灰度进行缩放。
#region Introduction
工具原工程位于Github并遵从GPLv3.0协议,请根据需求使用。
文章仅作抛砖引玉之用,希望借此给予寻求思路的开发者们一些灵感。
此教程系列曾属于“Unity The Great”,但由于“Tone Tune Tookit”的诞生,因此我决定将两个系列进行合并。
如果内容中出现了语混序乱、错鳖字、缺少标点符号的情况还请见谅
互联网精神永存。
#endregion
#region Developer
[团队代言人博客]
// https://www.cnblogs.com/mirzkisd1ex0/
[开发者邮箱]
// dearisaacyang@outlook.com
[开发者微信]
// qq2957047371
[开发者企鹅]
// 2957047371
#endregion