成就系统 巨大修改 新的ui 黑白效果 等一堆

This commit is contained in:
FloatGaming
2026-01-23 18:43:23 +08:00
parent f3ece026ca
commit 0e47864569
256 changed files with 134131 additions and 31192 deletions
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 719c63a55f685074682cdac131898ae6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 5615833ef7d42754196f107ce8a8917e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/GrayscaleUI.unity
uploadId: 774504
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fff98b255afc4464eaca86d55452f961
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

@@ -0,0 +1,124 @@
fileFormatVersion: 2
guid: 52e0645cad7f1ad44800275992df6af8
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/Images/Tank.png
uploadId: 774504
@@ -0,0 +1,15 @@
GRAYSCALE UI SHADER
Shader para convertir elementos de UI a escala de grises.
Compatible con los render pipelines URP y Built-in.
Parámetros del material:
- Saturación: Controla cuánta saturación se conserva (0 = blanco y negro)
- Ganancia: Multiplica el brillo final
- Usar Alpha Clip: Activa el recorte basado en opacidad
- Parámetros de Stencil: Comparación, ID, Operación, Máscara de lectura/escritura
- Color Mask: Define qué canales de color se renderizan
Probado en: Windows, Mac, Android
Versión mínima de Unity: 2022.1+
Soporte: Turishader@gmail.com
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 905bd8a272b10ab4aa71b25a9cf0f3f7
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/LEEME.txt
uploadId: 774504
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 111437d43c1df194192cf185af6de6c4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,49 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: GrayscaleUI
m_Shader: {fileID: 4800000, guid: 51c7ab3e913e35d45bc4ab2b80b3e071, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _texcoord:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _ColorMask: 15
- _Gain: 2
- _Grayscaleamount: 0
- _Saturarion: 0
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _UseUIAlphaClip: 0
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 7701c15f96b443d408ac83222c9b869a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/Materials/GrayscaleUI.mat
uploadId: 774504
@@ -0,0 +1,15 @@
GRAYSCALE UI SHADER
UI 要素をグレースケールに変換するシェーダー。
URP および Built-in レンダーパイプラインに対応。
マテリアルパラメータ:
- 彩度:色の残存度を調整(0 = 完全なグレースケール)
- ゲイン:最終的な明るさを調整
- Alpha Clip 使用:アルファ値に基づく透明度カットを有効化
- ステンシル設定:比較、ID、操作、読み書きマスク
- カラーマスク:レンダリングするカラーチャンネルを定義
動作確認済み:Windows、Mac、Android
最低対応 Unity バージョン:2022.1+
サポート連絡先:Turishader@gmail.com
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 70dbac50c0b6fe242ab59d6166a6b22a
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: "Assets/TurishaderPackages/GrayscaleUI/README-\u65E5\u672C\u8A9E.txt"
uploadId: 774504
@@ -0,0 +1,15 @@
GRAYSCALE UI SHADER
UI 요소를 흑백으로 변환하는 셰이더입니다.
URP 및 Built-in 렌더 파이프라인을 지원합니다.
머티리얼 파라미터:
- 채도: 색상 유지 정도 설정 (0 = 완전 흑백)
- 게인: 최종 밝기 조절
- Alpha Clip 사용: 알파 기반 클리핑 활성화
- 스텐실 설정: 비교, ID, 연산, 읽기/쓰기 마스크
- 컬러 마스크: 렌더링할 컬러 채널 지정
테스트된 플랫폼: Windows, Mac, Android
최소 Unity 버전: 2022.1+
지원 이메일: Turishader@gmail.com
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 0babe90e84e0b824bb8af25423eb4fb1
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: "Assets/TurishaderPackages/GrayscaleUI/README-\uD55C\uAD6D\uC5B4.txt"
uploadId: 774504
@@ -0,0 +1,15 @@
GRAYSCALE UI SHADER
Shader to convert UI elements to grayscale.
Supports URP and Built-in render pipelines.
Material Parameters:
- Saturation: Controls how much color is preserved (0 = full grayscale)
- Gain: Multiplies final brightness
- Use Alpha Clip: Enables alpha-based transparency cutoff
- Stencil settings: Comparison, ID, Operation, Read/Write Mask
- Color Mask: Defines which color channels are rendered
Tested on: Windows, Mac, Android
Unity Version: 2022.1+
Support: Turishader@gmail.com
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 2ed40b4ba7637174ca4339121ff1980c
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/README.txt
uploadId: 774504
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b8fddd9cb4d8d3746a14bb6bfdf30779
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,199 @@
// Made with Amplify Shader Editor v1.9.8.1
// Available at the Unity Asset Store - http://u3d.as/y3X
Shader "GrayscaleUI"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
_StencilComp ("Stencil Comparison", Float) = 8
_Stencil ("Stencil ID", Float) = 0
_StencilOp ("Stencil Operation", Float) = 0
_StencilWriteMask ("Stencil Write Mask", Float) = 255
_StencilReadMask ("Stencil Read Mask", Float) = 255
_ColorMask ("Color Mask", Float) = 15
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
_Saturarion("Saturarion", Range( 0 , 1)) = 0
_Gain("Gain", Float) = 2
[HideInInspector] _texcoord( "", 2D ) = "white" {}
}
SubShader
{
LOD 0
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" }
Stencil
{
Ref [_Stencil]
ReadMask [_StencilReadMask]
WriteMask [_StencilWriteMask]
Comp [_StencilComp]
Pass [_StencilOp]
}
Cull Off
Lighting Off
ZWrite Off
ZTest [unity_GUIZTestMode]
Blend One OneMinusSrcAlpha
ColorMask [_ColorMask]
Pass
{
Name "Default"
CGPROGRAM
#define ASE_VERSION 19801
#pragma vertex vert
#pragma fragment frag
#pragma target 3.5
#include "UnityCG.cginc"
#include "UnityUI.cginc"
#pragma multi_compile_local _ UNITY_UI_CLIP_RECT
#pragma multi_compile_local _ UNITY_UI_ALPHACLIP
#define ASE_NEEDS_FRAG_COLOR
struct appdata_t
{
float4 vertex : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
float4 worldPosition : TEXCOORD1;
float4 mask : TEXCOORD2;
UNITY_VERTEX_OUTPUT_STEREO
};
sampler2D _MainTex;
fixed4 _Color;
fixed4 _TextureSampleAdd;
float4 _ClipRect;
float4 _MainTex_ST;
float _UIMaskSoftnessX;
float _UIMaskSoftnessY;
uniform float _Gain;
uniform float _Saturarion;
v2f vert(appdata_t v )
{
v2f OUT;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
v.vertex.xyz += float3( 0, 0, 0 ) ;
float4 vPosition = UnityObjectToClipPos(v.vertex);
OUT.worldPosition = v.vertex;
OUT.vertex = vPosition;
float2 pixelSize = vPosition.w;
pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
float2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
OUT.texcoord = v.texcoord;
OUT.mask = float4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy)));
OUT.color = v.color * _Color;
return OUT;
}
fixed4 frag(v2f IN ) : SV_Target
{
//Round up the alpha color coming from the interpolator (to 1.0/256.0 steps)
//The incoming alpha could have numerical instability, which makes it very sensible to
//HDR color transparency blend, when it blends with the world's texture.
const half alphaPrecision = half(0xff);
const half invAlphaPrecision = half(1.0/alphaPrecision);
IN.color.a = round(IN.color.a * alphaPrecision)*invAlphaPrecision;
float2 uv_MainTex = IN.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
float4 tex2DNode2 = tex2D( _MainTex, uv_MainTex );
float grayscale3 = Luminance(tex2DNode2.rgb);
float3 temp_cast_0 = (saturate( ( grayscale3 * _Gain ) )).xxx;
float3 lerpResult5 = lerp( temp_cast_0 , tex2DNode2.rgb , _Saturarion);
float4 appendResult7 = (float4(( float4( lerpResult5 , 0.0 ) * IN.color ).rgb , ( tex2DNode2.a * IN.color.a )));
half4 color = appendResult7;
#ifdef UNITY_UI_CLIP_RECT
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
color.a *= m.x * m.y;
#endif
#ifdef UNITY_UI_ALPHACLIP
clip (color.a - 0.001);
#endif
color.rgb *= color.a;
return color;
}
ENDCG
}
}
CustomEditor "AmplifyShaderEditor.MaterialInspector"
Fallback Off
}
/*ASEBEGIN
Version=19801
Node;AmplifyShaderEditor.TemplateShaderPropertyNode;1;-1376,-112;Inherit;False;0;0;_MainTex;Shader;False;0;5;SAMPLER2D;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SamplerNode;2;-1152,-112;Inherit;True;Property;_TextureSample0;Texture Sample 0;5;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
Node;AmplifyShaderEditor.TFHCGrayscale;3;-880,-224;Inherit;False;0;1;0;FLOAT3;0,0,0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;12;-992,256;Inherit;False;Property;_Gain;Gain;1;0;Create;True;0;0;0;False;0;False;2;1;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;15;-704,-208;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;6;-1136,80;Inherit;False;Property;_Saturarion;Saturarion;0;0;Create;True;0;0;0;False;0;False;0;1;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.SaturateNode;14;-560,-160;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.VertexColorNode;8;-470,347.5;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.LerpOp;5;-416,-160;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;10;64,32;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;9;0,224;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.DynamicAppendNode;7;256,64;Inherit;False;FLOAT4;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;11;-272,-288;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;464,64;Float;False;True;-1;3;AmplifyShaderEditor.MaterialInspector;0;3;GrayscaleUI;5056123faa0c79b47ab6ad7e8bf059a4;True;Default;0;0;Default;2;False;True;3;1;False;;10;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;True;True;True;True;True;0;True;_ColorMask;False;False;False;False;False;False;False;True;True;0;True;_Stencil;255;True;_StencilReadMask;255;True;_StencilWriteMask;0;True;_StencilComp;0;True;_StencilOp;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;2;False;;True;0;True;unity_GUIZTestMode;False;True;5;Queue=Transparent=Queue=0;IgnoreProjector=True;RenderType=Transparent=RenderType;PreviewType=Plane;CanUseSpriteAtlas=True;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;False;0;;0;0;Standard;0;0;1;True;False;;False;0
WireConnection;2;0;1;0
WireConnection;3;0;2;5
WireConnection;15;0;3;0
WireConnection;15;1;12;0
WireConnection;14;0;15;0
WireConnection;5;0;14;0
WireConnection;5;1;2;5
WireConnection;5;2;6;0
WireConnection;10;0;5;0
WireConnection;10;1;8;0
WireConnection;9;0;2;4
WireConnection;9;1;8;4
WireConnection;7;0;10;0
WireConnection;7;3;9;0
WireConnection;11;0;5;0
WireConnection;0;0;7;0
ASEEND*/
//CHKSM=B8774089DD98AAB2B09317A99E085FC79CCF5303
@@ -0,0 +1,16 @@
fileFormatVersion: 2
guid: 51c7ab3e913e35d45bc4ab2b80b3e071
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/Shaders/GrayscaleUI.shader
uploadId: 774504
@@ -0,0 +1,180 @@
// Made with Amplify Shader Editor v1.9.8.1
// Available at the Unity Asset Store - http://u3d.as/y3X
Shader "SimpleTMP"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
_StencilComp ("Stencil Comparison", Float) = 8
_Stencil ("Stencil ID", Float) = 0
_StencilOp ("Stencil Operation", Float) = 0
_StencilWriteMask ("Stencil Write Mask", Float) = 255
_StencilReadMask ("Stencil Read Mask", Float) = 255
_ColorMask ("Color Mask", Float) = 15
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
_Threshold("Threshold", Range( 0 , 1)) = 0.5
[HideInInspector] _texcoord( "", 2D ) = "white" {}
}
SubShader
{
LOD 0
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" }
Stencil
{
Ref [_Stencil]
ReadMask [_StencilReadMask]
WriteMask [_StencilWriteMask]
Comp [_StencilComp]
Pass [_StencilOp]
}
Cull Off
Lighting Off
ZWrite Off
ZTest [unity_GUIZTestMode]
Blend One OneMinusSrcAlpha
ColorMask [_ColorMask]
Pass
{
Name "Default"
CGPROGRAM
#define ASE_VERSION 19801
#pragma vertex vert
#pragma fragment frag
#pragma target 3.5
#include "UnityCG.cginc"
#include "UnityUI.cginc"
#pragma multi_compile_local _ UNITY_UI_CLIP_RECT
#pragma multi_compile_local _ UNITY_UI_ALPHACLIP
#define ASE_NEEDS_FRAG_COLOR
struct appdata_t
{
float4 vertex : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
float4 worldPosition : TEXCOORD1;
float4 mask : TEXCOORD2;
UNITY_VERTEX_OUTPUT_STEREO
};
sampler2D _MainTex;
fixed4 _Color;
fixed4 _TextureSampleAdd;
float4 _ClipRect;
float4 _MainTex_ST;
float _UIMaskSoftnessX;
float _UIMaskSoftnessY;
uniform float _Threshold;
v2f vert(appdata_t v )
{
v2f OUT;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
v.vertex.xyz += float3( 0, 0, 0 ) ;
float4 vPosition = UnityObjectToClipPos(v.vertex);
OUT.worldPosition = v.vertex;
OUT.vertex = vPosition;
float2 pixelSize = vPosition.w;
pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
float2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
OUT.texcoord = v.texcoord;
OUT.mask = float4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy)));
OUT.color = v.color * _Color;
return OUT;
}
fixed4 frag(v2f IN ) : SV_Target
{
//Round up the alpha color coming from the interpolator (to 1.0/256.0 steps)
//The incoming alpha could have numerical instability, which makes it very sensible to
//HDR color transparency blend, when it blends with the world's texture.
const half alphaPrecision = half(0xff);
const half invAlphaPrecision = half(1.0/alphaPrecision);
IN.color.a = round(IN.color.a * alphaPrecision)*invAlphaPrecision;
float2 uv_MainTex = IN.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
float temp_output_3_0_g1 = ( tex2D( _MainTex, uv_MainTex ).a - _Threshold );
float4 appendResult5 = (float4(IN.color.rgb , ( saturate( ( temp_output_3_0_g1 / fwidth( temp_output_3_0_g1 ) ) ) * IN.color.a )));
half4 color = appendResult5;
#ifdef UNITY_UI_CLIP_RECT
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
color.a *= m.x * m.y;
#endif
#ifdef UNITY_UI_ALPHACLIP
clip (color.a - 0.001);
#endif
color.rgb *= color.a;
return color;
}
ENDCG
}
}
CustomEditor "AmplifyShaderEditor.MaterialInspector"
Fallback Off
}
/*ASEBEGIN
Version=19801
Node;AmplifyShaderEditor.TemplateShaderPropertyNode;1;-1152,-16;Inherit;False;0;0;_MainTex;Shader;False;0;5;SAMPLER2D;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SamplerNode;2;-928,-16;Inherit;True;Property;_TextureSample0;Texture Sample 0;5;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
Node;AmplifyShaderEditor.RangedFloatNode;4;-832,224;Inherit;False;Property;_Threshold;Threshold;0;0;Create;True;0;0;0;False;0;False;0.5;0.5;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.VertexColorNode;7;-704,-224;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.FunctionNode;8;-480,80;Inherit;False;Step Antialiasing;-1;;1;2a825e80dfb3290468194f83380797bd;0;2;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;6;-210,114.5;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.DynamicAppendNode;5;32,-176;Inherit;False;FLOAT4;4;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;256,-80;Float;False;True;-1;3;AmplifyShaderEditor.MaterialInspector;0;3;SimpleTMP;5056123faa0c79b47ab6ad7e8bf059a4;True;Default;0;0;Default;2;False;True;3;1;False;;10;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;True;True;True;True;True;0;True;_ColorMask;False;False;False;False;False;False;False;True;True;0;True;_Stencil;255;True;_StencilReadMask;255;True;_StencilWriteMask;0;True;_StencilComp;0;True;_StencilOp;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;2;False;;True;0;True;unity_GUIZTestMode;False;True;5;Queue=Transparent=Queue=0;IgnoreProjector=True;RenderType=Transparent=RenderType;PreviewType=Plane;CanUseSpriteAtlas=True;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;False;0;;0;0;Standard;0;0;1;True;False;;False;0
WireConnection;2;0;1;0
WireConnection;8;1;4;0
WireConnection;8;2;2;4
WireConnection;6;0;8;0
WireConnection;6;1;7;4
WireConnection;5;0;7;0
WireConnection;5;3;6;0
WireConnection;0;0;5;0
ASEEND*/
//CHKSM=FE0A8B06D827CF41576A89E942A185DDC00FFBE9
@@ -0,0 +1,16 @@
fileFormatVersion: 2
guid: 680d0d0f90aed3641b44cb89246b596d
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/Shaders/SimpleTMP.shader
uploadId: 774504
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7a038ab76a6b6c8478ea316c7bd013de
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,16 @@
Font: Staatliches
Author: Brian J. Bonislawsky
License: SIL Open Font License, Version 1.1
This font is licensed under the SIL Open Font License (OFL) Version 1.1.
You are allowed to use, study, modify and redistribute this font freely,
as long as it is not sold by itself.
You may include it in commercial projects, provided you do not resell the font on its own.
Full license text available at:
https://scripts.sil.org/OFL
Staatliches is available via Google Fonts:
https://fonts.google.com/specimen/Staatliches
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: eb5cd18f26fcb7b4cadb35ae9ca7e0fd
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/ThirdPartyResources/LICENSE_Font.txt
uploadId: 774504
@@ -0,0 +1,16 @@
fileFormatVersion: 2
guid: d51371884f547f34199528b9b40d1461
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/ThirdPartyResources/Staatliches-Regular
1 SDF.asset
uploadId: 774504
@@ -0,0 +1,29 @@
fileFormatVersion: 2
guid: 614223c32a73587419d9b22140c0606a
TrueTypeFontImporter:
externalObjects: {}
serializedVersion: 4
fontSize: 16
forceTextureCase: -2
characterSpacing: 0
characterPadding: 1
includeFontData: 1
fontNames:
- Staatliches
fallbackFontReferences: []
customCharacters:
fontRenderingMode: 0
ascentCalculationMode: 1
useLegacyBoundsCalculation: 0
shouldRoundAdvanceValue: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: Assets/TurishaderPackages/GrayscaleUI/ThirdPartyResources/Staatliches-Regular
1.ttf
uploadId: 774504
@@ -0,0 +1,15 @@
GRAYSCALE UI SHADER
将 UI 元素转换为灰度的 Shader。
支持 URP 和 Built-in 渲染管线。
材质参数:
- 饱和度:控制保留多少颜色(0 = 完全灰度)
- 增益:控制最终亮度
- 使用 Alpha Clip:启用基于透明度的裁剪
- 模板设置:比较、ID、操作、读写掩码
- 颜色遮罩:定义渲染哪些颜色通道
测试平台:WindowsMacAndroid
最低 Unity 版本:2022.1+
技术支持:Turishader@gmail.com
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: e9b4bd10eb93d2349911fed1c4b46fad
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 326594
packageName: Grayscale UI shader
packageVersion: 1.0
assetPath: "Assets/TurishaderPackages/GrayscaleUI/\u8BF4\u660E.txt"
uploadId: 774504