#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 Off Lighting Off ZWrite Off Blend SrcAlpha OneMinusSrcAlpha Pass { 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/
[开发者邮箱]
// [email protected]
[开发者微信]
// qq2957047371
[开发者企鹅]
// 2957047371
#endregion