diff --git a/Assets/Materials/UI.meta b/Assets/Materials/UI.meta new file mode 100644 index 0000000..e093d07 --- /dev/null +++ b/Assets/Materials/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: XCkYtSv4UijRyjbc+Fz8TQCohQuzRU2NqdTGs4VTLwtL3EYGiAKtqU8= +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/UI/GoldTextMaterial.mat b/Assets/Materials/UI/GoldTextMaterial.mat new file mode 100644 index 0000000..6293aed --- /dev/null +++ b/Assets/Materials/UI/GoldTextMaterial.mat @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GoldTextMaterial + m_Shader: {fileID: 4800000, guid: 1b4304036052d4284aba4b2111c49cc0, 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} + m_Ints: [] + m_Floats: + - _ColorMask: 15 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + m_Colors: + - _BottomColor: {r: 0.88, g: 0.58, b: 0.08, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _TopColor: {r: 1, g: 0.96, b: 0.65, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/GoldTextMaterial.mat.meta b/Assets/Materials/UI/GoldTextMaterial.mat.meta new file mode 100644 index 0000000..46aef95 --- /dev/null +++ b/Assets/Materials/UI/GoldTextMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: DC8Y4Hz5AS/8q8uFTNpmHx4eYO1o98PLmmNCe26CvouNdJ23z2UML1c= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Picture/UI/顶部UI.meta b/Assets/Picture/UI/顶部UI.meta new file mode 100644 index 0000000..969b5be --- /dev/null +++ b/Assets/Picture/UI/顶部UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: XCkbvSqoUy0CP7axqv2i+Rl3xRU2rhKU66SBsb4Gih//8lDTijXoL0w= +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Picture/UI/顶部UI/波次.png b/Assets/Picture/UI/顶部UI/波次.png new file mode 100644 index 0000000..5cf06d3 Binary files /dev/null and b/Assets/Picture/UI/顶部UI/波次.png differ diff --git a/Assets/Picture/UI/顶部UI/波次.png.meta b/Assets/Picture/UI/顶部UI/波次.png.meta new file mode 100644 index 0000000..26f62f7 --- /dev/null +++ b/Assets/Picture/UI/顶部UI/波次.png.meta @@ -0,0 +1,163 @@ +fileFormatVersion: 2 +guid: Wy4bvSuqUn7+N9KsbxZKGocu/GBCxxOMMtYKsG9RW+g+ih1hzf5FOtA= +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 14 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 + 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: 100 + 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: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WeixinMiniGame + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PlayableAds + maxTextureSize: 2048 + maxPlaceholderSize: 32 + 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: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + doOverrideTextureManagerOperations: 0 + platformOperationGroupSettings: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Picture/UI/顶部UI/金币.png b/Assets/Picture/UI/顶部UI/金币.png new file mode 100644 index 0000000..ae8b97d Binary files /dev/null and b/Assets/Picture/UI/顶部UI/金币.png differ diff --git a/Assets/Picture/UI/顶部UI/金币.png.meta b/Assets/Picture/UI/顶部UI/金币.png.meta new file mode 100644 index 0000000..57b214d --- /dev/null +++ b/Assets/Picture/UI/顶部UI/金币.png.meta @@ -0,0 +1,163 @@ +fileFormatVersion: 2 +guid: B31KtiL4VCkqYIpIjQqs56JlMBJJAhnWyzTxvcTwqprEIEjvLE9i5cM= +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 14 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 + 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: 100 + 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: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WeixinMiniGame + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PlayableAds + maxTextureSize: 2048 + maxPlaceholderSize: 32 + 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: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + doOverrideTextureManagerOperations: 0 + platformOperationGroupSettings: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Picture/UI/顶部UI/顶部背景.png b/Assets/Picture/UI/顶部UI/顶部背景.png new file mode 100644 index 0000000..be8609d Binary files /dev/null and b/Assets/Picture/UI/顶部UI/顶部背景.png differ diff --git a/Assets/Picture/UI/顶部UI/顶部背景.png.meta b/Assets/Picture/UI/顶部UI/顶部背景.png.meta new file mode 100644 index 0000000..47a2c5a --- /dev/null +++ b/Assets/Picture/UI/顶部UI/顶部背景.png.meta @@ -0,0 +1,163 @@ +fileFormatVersion: 2 +guid: XH9OvH/+Uy9qcc6Xfi5aKC4kihzRVdXpStiCAVriXl72UHio8Iwf1TQ= +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 14 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 + 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: 100 + 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: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WeixinMiniGame + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PlayableAds + maxTextureSize: 2048 + maxPlaceholderSize: 32 + 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: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + doOverrideTextureManagerOperations: 0 + platformOperationGroupSettings: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/DefenseTest.scene b/Assets/Scenes/DefenseTest.scene index a2c4402..13dde4f 100644 Binary files a/Assets/Scenes/DefenseTest.scene and b/Assets/Scenes/DefenseTest.scene differ diff --git a/Assets/Scripts/UI脚本/GoldUI.cs b/Assets/Scripts/UI脚本/GoldUI.cs index b7854b9..53d52ca 100644 --- a/Assets/Scripts/UI脚本/GoldUI.cs +++ b/Assets/Scripts/UI脚本/GoldUI.cs @@ -51,7 +51,7 @@ public class GoldUI : MonoBehaviour { if (goldText != null) { - goldText.text = $"金币: {newGold}"; + goldText.text = $"金币 {newGold}"; } } } diff --git a/Assets/Scripts/关卡脚本/DefenseWaveLevelController.cs b/Assets/Scripts/关卡脚本/DefenseWaveLevelController.cs index 4ba11cf..7b00526 100644 --- a/Assets/Scripts/关卡脚本/DefenseWaveLevelController.cs +++ b/Assets/Scripts/关卡脚本/DefenseWaveLevelController.cs @@ -187,12 +187,16 @@ public class DefenseWaveLevelController : MonoBehaviour activeEnemies.RemoveAt(i); defeatedEnemies++; - // 击杀金币奖励 (基础 15 金币 * 战术增益倍率) + // 击杀金币奖励:小怪固定 1 金币,英雄/Boss 单位固定 5 金币 (支持战术倍率) if (GoldManager.Instance != null) { + bool isHeroUnit = IsHeroOrBossUnit(enemy); + int baseGold = isHeroUnit ? 5 : 1; float killMult = BuffSelectionController.KillGoldMultiplier; - int goldAmount = Mathf.RoundToInt(15f * killMult); + int goldAmount = Mathf.Max(1, Mathf.RoundToInt(baseGold * killMult)); + GoldManager.Instance.AddGold(goldAmount); + Debug.Log($"击杀 {(isHeroUnit ? "英雄/Boss" : "小怪")},获得金币 +{goldAmount}"); } UpdateProgress(currentWaveIndex + 1, level.waves.Length); @@ -204,6 +208,27 @@ public class DefenseWaveLevelController : MonoBehaviour } } + private bool IsHeroOrBossUnit(GameObject enemy) + { + if (enemy == null) return false; + string n = enemy.name.ToLower(); + if (n.Contains("hero") || n.Contains("boss") || n.Contains("英雄") || n.Contains("石巨人") || n.Contains("狼人")) + { + return true; + } + + var unit = enemy.GetComponent(); + if (unit != null && !string.IsNullOrEmpty(unit.characterDataName)) + { + // 非小怪名称判断 + if (!unit.characterDataName.Contains("小怪") && !unit.characterDataName.Contains("蓝卫") && !unit.characterDataName.Contains("弓童") && !unit.characterDataName.Contains("蛮卒")) + { + return true; + } + } + return false; + } + private void ApplyCharacterData(GameObject enemy, string characterId) { // 从所有 CharacterData 中按 characterId 字段查找,而不是按文件名 diff --git a/Assets/Shader/UIGoldText.shader b/Assets/Shader/UIGoldText.shader new file mode 100644 index 0000000..676b565 --- /dev/null +++ b/Assets/Shader/UIGoldText.shader @@ -0,0 +1,95 @@ +Shader "UI/GoldTextGradient" +{ + Properties + { + [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + + _TopColor ("Top Gold Color", Color) = (1, 0.95, 0.6, 1) + _BottomColor ("Bottom Gold Color", Color) = (0.9, 0.65, 0.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 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull Off + Lighting Off + ZWrite Off + ZTest [unity_GUIZTestMode] + Blend SrcAlpha OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + #include "UnityUI.cginc" + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + half2 texcoord : TEXCOORD0; + float4 worldPosition : TEXCOORD1; + }; + + fixed4 _Color; + fixed4 _TopColor; + fixed4 _BottomColor; + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert(appdata_t IN) + { + v2f OUT; + OUT.worldPosition = IN.vertex; + OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + OUT.texcoord = TRANSFORM_TEX(IN.texcoord, _MainTex); + + fixed4 gradColor = lerp(_BottomColor, _TopColor, saturate(IN.texcoord.y)); + OUT.color = IN.color * _Color * gradColor; + return OUT; + } + + fixed4 frag(v2f IN) : SV_Target + { + half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; + return color; + } + ENDCG + } + } +} diff --git a/Assets/Shader/UIGoldText.shader.meta b/Assets/Shader/UIGoldText.shader.meta new file mode 100644 index 0000000..84faa5e --- /dev/null +++ b/Assets/Shader/UIGoldText.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: DigbtiqpU3j8N90EVQowLtPtYegKsmpKHnqMN8cef2iB8C1BMWP2FoE= +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: