diff --git a/Assets/Plugins/AllIn1SpriteShader/Scripts/Editor/AllIn1SpriteShaderUiMask2MaterialInspector.cs b/Assets/Plugins/AllIn1SpriteShader/Scripts/Editor/AllIn1SpriteShaderUiMask2MaterialInspector.cs new file mode 100644 index 000000000..bccef551f --- /dev/null +++ b/Assets/Plugins/AllIn1SpriteShader/Scripts/Editor/AllIn1SpriteShaderUiMask2MaterialInspector.cs @@ -0,0 +1,759 @@ +#if UNITY_EDITOR +using System.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.Rendering; + +[CanEditMultipleObjects] +public class AllIn1SpriteShaderUiMask2MaterialInspector : ShaderGUI +{ + private Material targetMat; + private BlendMode srcMode, dstMode; + + private GUIStyle propertiesStyle, bigLabelStyle, smallLabelStyle, toggleButtonStyle; + private const int bigFontSize = 16, smallFontSize = 11; + private string[] oldKeyWords; + private int effectCount = 1; + private Material originalMaterialCopy; + private MaterialEditor matEditor; + private MaterialProperty[] matProperties; + private uint[] materialDrawers = new uint[] { 1, 2, 4 }; + bool[] currEnabledDrawers; + private const uint advancedConfigDrawer = 0; + private const uint colorFxShapeDrawer = 1; + private const uint uvFxShapeDrawer = 2; + + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties) + { + matEditor = materialEditor; + matProperties = properties; + targetMat = materialEditor.target as Material; + effectCount = 1; + oldKeyWords = targetMat.shaderKeywords; + propertiesStyle = new GUIStyle(EditorStyles.helpBox); + propertiesStyle.margin = new RectOffset(0, 0, 0, 0); + bigLabelStyle = new GUIStyle(EditorStyles.boldLabel); + bigLabelStyle.fontSize = bigFontSize; + smallLabelStyle = new GUIStyle(EditorStyles.boldLabel); + smallLabelStyle.fontSize = smallFontSize; + toggleButtonStyle = new GUIStyle(GUI.skin.button) { alignment = TextAnchor.MiddleCenter, richText = true }; + currEnabledDrawers = new bool[materialDrawers.Length]; + uint iniDrawers = (uint)ShaderGUI.FindProperty("_EditorDrawers", matProperties).floatValue; + for(int i = 0; i < materialDrawers.Length; i++) currEnabledDrawers[i] = (materialDrawers[i] & iniDrawers) > 0; + + GUILayout.Label("General Properties", bigLabelStyle); + DrawProperty(0); + DrawProperty(1); + DrawProperty(2); + + + currEnabledDrawers[advancedConfigDrawer] = GUILayout.Toggle(currEnabledDrawers[advancedConfigDrawer], new GUIContent("Show Advanced Configuration"), toggleButtonStyle); + if(currEnabledDrawers[advancedConfigDrawer]) + { + + EditorGUILayout.BeginVertical(propertiesStyle); + Blending(); + DrawLine(Color.grey, 1, 3); + SpriteAtlas("Sprite inside an atlas?", "ATLAS_ON"); + DrawLine(Color.grey, 1, 3); + materialEditor.EnableInstancingField(); + DrawLine(Color.grey, 1, 3); + materialEditor.RenderQueueField(); + EditorGUILayout.EndVertical(); + } + + EditorGUILayout.Separator(); + DrawLine(Color.grey, 1, 3); + GUILayout.Label("Color Effects", bigLabelStyle); + + currEnabledDrawers[colorFxShapeDrawer] = GUILayout.Toggle(currEnabledDrawers[colorFxShapeDrawer], new GUIContent("Show Color Effects"), toggleButtonStyle); + if(currEnabledDrawers[colorFxShapeDrawer]) + { + Glow("Glow", "GLOW_ON"); + GenericEffect("Fade", "FADE_ON", 7, 13); + Outline("Outline", "OUTBASE_ON"); + GenericEffect("Alpha Outline", "ALPHAOUTLINE_ON", 26, 30, true, "A more performant but less flexible outline"); + InnerOutline("Inner Outline", "INNEROUTLINE_ON", 66, 69); + Gradient("Gradient & Radial Gradient", "GRADIENT_ON"); + GenericEffect("Color Swap", "COLORSWAP_ON", 36, 42, true, "You will need a mask texture (see Documentation)", new int[] { 154 }); + GenericEffect("Hue Shift", "HSV_ON", 43, 45); + ColorChange("Change 1 Color", "CHANGECOLOR_ON"); + ColorRamp("Color Ramp", "COLORRAMP_ON"); + GenericEffect("Hit Effect", "HITEFFECT_ON", 46, 48); + GenericEffect("Negative", "NEGATIVE_ON", 49, 49); + GenericEffect("Pixelate", "PIXELATE_ON", 50, 50, true, "Looks bad with distorition effects"); + GreyScale("GreyScale", "GREYSCALE_ON"); + Posterize("Posterize", "POSTERIZE_ON"); + Blur("Blur", "BLUR_ON"); + GenericEffect("Motion Blur", "MOTIONBLUR_ON", 62, 63); + GenericEffect("Ghost", "GHOST_ON", 64, 65, true, "This effect will not affect the outline", new int[] { 157 }); + GenericEffect("Hologram", "HOLOGRAM_ON", 73, 77, true, null, new int[] { 140, 158 }); + GenericEffect("Chromatic Aberration", "CHROMABERR_ON", 78, 79); + GenericEffect("Glitch", "GLITCH_ON", 80, 80, true, null, new int[] { 139 }); + GenericEffect("Flicker", "FLICKER_ON", 81, 83); + GenericEffect("Shadow", "SHADOW_ON", 84, 87); + GenericEffect("Shine", "SHINE_ON", 133, 138); + GenericEffect("Contrast & Brightness", "CONTRAST_ON", 152, 153); + Overlay("Overlay Texture", "OVERLAY_ON"); + GenericEffect("Alpha Cutoff", "ALPHACUTOFF_ON", 70, 70); + GenericEffect("Alpha Round", "ALPHAROUND_ON", 144, 144); + } + + DrawLine(Color.grey, 1, 3); + GUILayout.Label("UV Effects", bigLabelStyle); + + currEnabledDrawers[uvFxShapeDrawer] = GUILayout.Toggle(currEnabledDrawers[uvFxShapeDrawer], new GUIContent("Show Alpha Effects"), toggleButtonStyle); + if(currEnabledDrawers[uvFxShapeDrawer]) + { + GenericEffect("Hand Drawn", "DOODLE_ON", 88, 89); + Grass("Grass Movement / Wind", "WIND_ON"); + GenericEffect("Wave", "WAVEUV_ON", 94, 98); + GenericEffect("Round Wave", "ROUNDWAVEUV_ON", 127, 128); + GenericEffect("Rect Size (Enable wireframe to see result)", "RECTSIZE_ON", 99, 99, true, "Only on single sprites spritesheets NOT supported"); + GenericEffect("Offset", "OFFSETUV_ON", 100, 101); + GenericEffect("Clipping / Fill Amount", "CLIPPING_ON", 102, 105); + GenericEffect("Radial Clipping / Radial Fill", "RADIALCLIPPING_ON", 164, 166); + GenericEffect("Texture Scroll", "TEXTURESCROLL_ON", 106, 107, true, "Set Texture Wrap Mode to Repeat"); + GenericEffect("Zoom", "ZOOMUV_ON", 108, 108); + GenericEffect("Distortion", "DISTORT_ON", 109, 112); + GenericEffect("Warp Distortion", "WARP_ON", 167, 169); + GenericEffect("Twist", "TWISTUV_ON", 113, 116); + GenericEffect("Rotate", "ROTATEUV_ON", 117, 117, true, "_Tip_ Use Clipping effect to avoid possible undesired parts"); + GenericEffect("Polar Coordinates (Tile texture for good results)", "POLARUV_ON", -1, -1); + GenericEffect("Fish Eye", "FISHEYE_ON", 118, 118); + GenericEffect("Pinch", "PINCH_ON", 119, 119); + GenericEffect("Shake", "SHAKEUV_ON", 120, 122); + } + + SetAndSaveEnabledDrawers(iniDrawers); + } + + private void SetAndSaveEnabledDrawers(uint iniDrawers) + { + uint currDrawers = 0; + for(int i = 0; i < currEnabledDrawers.Length; i++) + { + if(currEnabledDrawers[i]) currDrawers |= materialDrawers[i]; + } + + if(iniDrawers != currDrawers) ShaderGUI.FindProperty("_EditorDrawers", matProperties).floatValue = currDrawers; + } + + private void Blending() + { + MaterialProperty srcM = ShaderGUI.FindProperty("_MySrcMode", matProperties); + MaterialProperty dstM = ShaderGUI.FindProperty("_MyDstMode", matProperties); + if(srcM.floatValue == 0 && dstM.floatValue == 0) + { + srcM.floatValue = 5; + dstM.floatValue = 10; + } + + GUILayout.Label("Look for 'ShaderLab: Blending' if you don't know what this is", smallLabelStyle); + if(GUILayout.Button("Back To Default Blending")) + { + srcM.floatValue = 5; + dstM.floatValue = 10; + targetMat.DisableKeyword("PREMULTIPLYALPHA_ON"); + } + + srcMode = (BlendMode)srcM.floatValue; + dstMode = (BlendMode)dstM.floatValue; + srcMode = (BlendMode)EditorGUILayout.EnumPopup("SrcMode", srcMode); + dstMode = (BlendMode)EditorGUILayout.EnumPopup("DstMode", dstMode); + srcM.floatValue = (float)(srcMode); + dstM.floatValue = (float)(dstMode); + + bool ini = oldKeyWords.Contains("PREMULTIPLYALPHA_ON"); + bool toggle = EditorGUILayout.Toggle("Premultiply Alpha?", ini); + if(ini != toggle) Save(); + if(toggle) targetMat.EnableKeyword("PREMULTIPLYALPHA_ON"); + else targetMat.DisableKeyword("PREMULTIPLYALPHA_ON"); + } + + private void SpriteAtlas(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + toggle = GUILayout.Toggle(toggle, inspector); + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword(keyword); + EditorGUILayout.BeginVertical(propertiesStyle); + { + GUILayout.Label("Make sure SpriteAtlasUV component is added \n " + + "*Check documentation if unsure what this does or how it works", smallLabelStyle); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword(keyword); + } + + private void Outline(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + ".Outline"; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword("OUTBASE_ON"); + EditorGUILayout.BeginVertical(propertiesStyle); + { + DrawProperty(14); + DrawProperty(15); + DrawProperty(16); + DrawEffectSubKeywordToggle("Outline High Resolution?", "OUTBASE8DIR_ON"); + + DrawLine(Color.grey, 1, 3); + bool outlinePixelPerf = DrawEffectSubKeywordToggle("Outline is Pixel Perfect?", "OUTBASEPIXELPERF_ON"); + if(outlinePixelPerf) DrawProperty(18); + else DrawProperty(17); + + DrawLine(Color.grey, 1, 3); + bool outlineTexture = DrawEffectSubKeywordToggle("Outline uses texture?", "OUTTEX_ON"); + if(outlineTexture) + { + DrawProperty(19); + DrawProperty(20); + DrawProperty(21); + DrawProperty(172); + } + + DrawLine(Color.grey, 1, 3); + bool outlineDistort = DrawEffectSubKeywordToggle("Outline uses distortion?", "OUTDIST_ON"); + if(outlineDistort) + { + DrawProperty(22); + DrawProperty(23); + DrawProperty(24); + DrawProperty(25); + } + + DrawLine(Color.grey, 1, 3); + DrawEffectSubKeywordToggle("Only render outline?", "ONLYOUTLINE_ON"); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword("OUTBASE_ON"); + + EditorGUILayout.EndToggleGroup(); + } + + private void GenericEffect(string inspector, string keyword, int first, int last, bool effectCounter = true, string preMessage = null, int[] extraProperties = null, bool boldToggleLetters = true) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + if(effectCounter) + { + effectNameLabel.text = effectCount + "." + inspector; + effectCount++; + } + else effectNameLabel.text = inspector; + if(boldToggleLetters) toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + else toggle = GUILayout.Toggle(toggle, effectNameLabel); + + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword(keyword); + if(first > 0) + { + EditorGUILayout.BeginVertical(propertiesStyle); + { + if(preMessage != null) GUILayout.Label(preMessage, smallLabelStyle); + for(int i = first; i <= last; i++) DrawProperty(i); + if(extraProperties != null) + foreach(int i in extraProperties) + DrawProperty(i); + } + EditorGUILayout.EndVertical(); + } + } + else targetMat.DisableKeyword(keyword); + + if(boldToggleLetters) EditorGUILayout.EndToggleGroup(); + } + + private void Glow(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword("GLOW_ON"); + EditorGUILayout.BeginVertical(propertiesStyle); + { + bool useGlowTex = DrawEffectSubKeywordToggle("Use Glow Texture?", "GLOWTEX_ON"); + if(useGlowTex) DrawProperty(6); + + DrawProperty(3); + DrawProperty(4); + DrawProperty(5, true); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword("GLOW_ON"); + + EditorGUILayout.EndToggleGroup(); + } + + private void ColorRamp(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword("COLORRAMP_ON"); + EditorGUILayout.BeginVertical(propertiesStyle); + { + bool useEditableGradient = false; + if(AssetDatabase.Contains(targetMat)) + { + useEditableGradient = oldKeyWords.Contains("GRADIENTCOLORRAMP_ON"); + bool gradientTex = useEditableGradient; + gradientTex = GUILayout.Toggle(gradientTex, new GUIContent("Use Editable Gradient?")); + if(useEditableGradient != gradientTex) + { + Save(); + if(gradientTex) + { + useEditableGradient = true; + targetMat.EnableKeyword("GRADIENTCOLORRAMP_ON"); + } + else targetMat.DisableKeyword("GRADIENTCOLORRAMP_ON"); + } + + if(useEditableGradient) matEditor.ShaderProperty(matProperties[159], matProperties[159].displayName); + } + else GUILayout.Label("*Save to folder to allow for dynamic Gradient property", smallLabelStyle); + + if(!useEditableGradient) DrawProperty(51); + + DrawProperty(52); + DrawProperty(53, true); + MaterialProperty colorRampOut = matProperties[53]; + if(colorRampOut.floatValue == 1) targetMat.EnableKeyword("COLORRAMPOUTLINE_ON"); + else targetMat.DisableKeyword("COLORRAMPOUTLINE_ON"); + DrawProperty(155); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword("COLORRAMP_ON"); + + EditorGUILayout.EndToggleGroup(); + } + + private void ColorChange(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword("CHANGECOLOR_ON"); + EditorGUILayout.BeginVertical(propertiesStyle); + { + for(int i = 123; i < 127; i++) DrawProperty(i); + + DrawLine(Color.grey, 1, 3); + ini = oldKeyWords.Contains("CHANGECOLOR2_ON"); + bool toggle2 = ini; + toggle2 = EditorGUILayout.Toggle("Use Color 2", ini); + if(ini != toggle2) Save(); + if(toggle2) + { + targetMat.EnableKeyword("CHANGECOLOR2_ON"); + for(int i = 146; i < 149; i++) DrawProperty(i); + } + else targetMat.DisableKeyword("CHANGECOLOR2_ON"); + + DrawLine(Color.grey, 1, 3); + ini = oldKeyWords.Contains("CHANGECOLOR3_ON"); + toggle2 = ini; + toggle2 = EditorGUILayout.Toggle("Use Color 3", toggle2); + if(ini != toggle2) Save(); + if(toggle2) + { + targetMat.EnableKeyword("CHANGECOLOR3_ON"); + for(int i = 149; i < 152; i++) DrawProperty(i); + } + else targetMat.DisableKeyword("CHANGECOLOR3_ON"); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword("CHANGECOLOR_ON"); + + EditorGUILayout.EndToggleGroup(); + } + + private void GreyScale(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword("GREYSCALE_ON"); + EditorGUILayout.BeginVertical(propertiesStyle); + { + DrawProperty(54); + DrawProperty(56); + DrawProperty(55, true); + MaterialProperty greyScaleOut = matProperties[55]; + if(greyScaleOut.floatValue == 1) targetMat.EnableKeyword("GREYSCALEOUTLINE_ON"); + else targetMat.DisableKeyword("GREYSCALEOUTLINE_ON"); + DrawProperty(156); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword("GREYSCALE_ON"); + + EditorGUILayout.EndToggleGroup(); + } + + private void Posterize(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword("POSTERIZE_ON"); + EditorGUILayout.BeginVertical(propertiesStyle); + { + DrawProperty(57); + DrawProperty(58); + DrawProperty(59, true); + MaterialProperty posterizeOut = matProperties[59]; + if(posterizeOut.floatValue == 1) targetMat.EnableKeyword("POSTERIZEOUTLINE_ON"); + else targetMat.DisableKeyword("POSTERIZEOUTLINE_ON"); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword("POSTERIZE_ON"); + + EditorGUILayout.EndToggleGroup(); + } + + private void Blur(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword("BLUR_ON"); + EditorGUILayout.BeginVertical(propertiesStyle); + { + GUILayout.Label("This effect will not affect the outline", smallLabelStyle); + DrawProperty(60); + DrawProperty(61, true); + MaterialProperty blurIsHd = matProperties[61]; + if(blurIsHd.floatValue == 1) targetMat.EnableKeyword("BLURISHD_ON"); + else targetMat.DisableKeyword("BLURISHD_ON"); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword("BLUR_ON"); + + EditorGUILayout.EndToggleGroup(); + } + + private void Grass(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword("WIND_ON"); + EditorGUILayout.BeginVertical(propertiesStyle); + { + DrawProperty(90); + DrawProperty(91); + DrawProperty(145); + DrawProperty(92); + DrawProperty(93, true); + MaterialProperty grassManual = matProperties[92]; + if(grassManual.floatValue == 1) targetMat.EnableKeyword("MANUALWIND_ON"); + else targetMat.DisableKeyword("MANUALWIND_ON"); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword("WIND_ON"); + + EditorGUILayout.EndToggleGroup(); + } + + private void InnerOutline(string inspector, string keyword, int first, int last) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword(keyword); + if(first > 0) + { + EditorGUILayout.BeginVertical(propertiesStyle); + { + for(int i = first; i <= last; i++) DrawProperty(i); + + EditorGUILayout.Separator(); + DrawProperty(72, true); + MaterialProperty onlyInOutline = matProperties[72]; + if(onlyInOutline.floatValue == 1) targetMat.EnableKeyword("ONLYINNEROUTLINE_ON"); + else targetMat.DisableKeyword("ONLYINNEROUTLINE_ON"); + } + EditorGUILayout.EndVertical(); + } + } + else targetMat.DisableKeyword(keyword); + + EditorGUILayout.EndToggleGroup(); + } + + private void Gradient(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword(keyword); + + EditorGUILayout.BeginVertical(propertiesStyle); + { + DrawProperty(143, true); + MaterialProperty gradIsRadial = matProperties[143]; + if(gradIsRadial.floatValue == 1) + { + targetMat.EnableKeyword("RADIALGRADIENT_ON"); + DrawProperty(31); + DrawProperty(32); + DrawProperty(34); + DrawProperty(141); + } + else + { + targetMat.DisableKeyword("RADIALGRADIENT_ON"); + bool simpleGradient = oldKeyWords.Contains("GRADIENT2COL_ON"); + bool simpleGradToggle = EditorGUILayout.Toggle("2 Color Gradient?", simpleGradient); + if(simpleGradient && !simpleGradToggle) targetMat.DisableKeyword("GRADIENT2COL_ON"); + else if(!simpleGradient && simpleGradToggle) targetMat.EnableKeyword("GRADIENT2COL_ON"); + DrawProperty(31); + DrawProperty(32); + if(!simpleGradToggle) DrawProperty(33); + DrawProperty(34); + if(!simpleGradToggle) DrawProperty(35); + if(!simpleGradToggle) DrawProperty(141); + DrawProperty(142); + } + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword(keyword); + + EditorGUILayout.EndToggleGroup(); + } + + private void Overlay(string inspector, string keyword) + { + bool toggle = oldKeyWords.Contains(keyword); + bool ini = toggle; + + GUIContent effectNameLabel = new GUIContent(); + effectNameLabel.tooltip = keyword + " (C#)"; + effectNameLabel.text = effectCount + "." + inspector; + toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle); + + effectCount++; + if(ini != toggle) Save(); + if(toggle) + { + targetMat.EnableKeyword(keyword); + EditorGUILayout.BeginVertical(propertiesStyle); + { + bool multModeOn = oldKeyWords.Contains("OVERLAYMULT_ON"); + bool isMultMode = multModeOn; + isMultMode = GUILayout.Toggle(isMultMode, new GUIContent("Is overlay multiplicative?")); + if(multModeOn != isMultMode) + { + Save(); + if(isMultMode) + { + multModeOn = true; + targetMat.EnableKeyword("OVERLAYMULT_ON"); + } + else targetMat.DisableKeyword("OVERLAYMULT_ON"); + } + + if(multModeOn) GUILayout.Label("Overlay is set to multiplicative mode", smallLabelStyle); + else GUILayout.Label("Overlay is set to additive mode", smallLabelStyle); + + for(int i = 160; i <= 163; i++) DrawProperty(i); + for(int i = 170; i <= 171; i++) DrawProperty(i); + } + EditorGUILayout.EndVertical(); + } + else targetMat.DisableKeyword(keyword); + + EditorGUILayout.EndToggleGroup(); + } + + private void DrawProperty(int index, bool noReset = false) + { + MaterialProperty targetProperty = matProperties[index]; + + EditorGUILayout.BeginHorizontal(); + { + GUIContent propertyLabel = new GUIContent(); + propertyLabel.text = targetProperty.displayName; + propertyLabel.tooltip = targetProperty.name + " (C#)"; + + matEditor.ShaderProperty(targetProperty, propertyLabel); + + if(!noReset) + { + GUIContent resetButtonLabel = new GUIContent(); + resetButtonLabel.text = "R"; + resetButtonLabel.tooltip = "Resets to default value"; + if(GUILayout.Button(resetButtonLabel, GUILayout.Width(20))) ResetProperty(targetProperty); + } + } + EditorGUILayout.EndHorizontal(); + } + + private void ResetProperty(MaterialProperty targetProperty) + { + if(originalMaterialCopy == null) originalMaterialCopy = new Material(targetMat.shader); + if(targetProperty.type == MaterialProperty.PropType.Float || targetProperty.type == MaterialProperty.PropType.Range) + { + targetProperty.floatValue = originalMaterialCopy.GetFloat(targetProperty.name); + } + else if(targetProperty.type == MaterialProperty.PropType.Vector) + { + targetProperty.vectorValue = originalMaterialCopy.GetVector(targetProperty.name); + } + else if(targetProperty.type == MaterialProperty.PropType.Color) + { + targetProperty.colorValue = originalMaterialCopy.GetColor(targetProperty.name); + } + else if(targetProperty.type == MaterialProperty.PropType.Texture) + { + targetProperty.textureValue = originalMaterialCopy.GetTexture(targetProperty.name); + } + } + + private bool DrawEffectSubKeywordToggle(string inspector, string keyword, bool setCustomConfigAfter = false) + { + GUIContent propertyLabel = new GUIContent(); + propertyLabel.text = inspector; + propertyLabel.tooltip = keyword + " (C#)"; + + bool ini = oldKeyWords.Contains(keyword); + bool toggle = ini; + toggle = GUILayout.Toggle(toggle, propertyLabel); + if(ini != toggle) + { + if(toggle) targetMat.EnableKeyword(keyword); + else targetMat.DisableKeyword(keyword); + } + + return toggle; + } + + private void Save() + { + if(!Application.isPlaying) EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); + EditorUtility.SetDirty(targetMat); + } + + private void DrawLine(Color color, int thickness = 2, int padding = 10) + { + Rect r = EditorGUILayout.GetControlRect(GUILayout.Height(padding + thickness)); + r.height = thickness; + r.y += (padding / 2); + r.x -= 2; + r.width += 6; + EditorGUI.DrawRect(r, color); + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/AllIn1SpriteShader/Scripts/Editor/AllIn1SpriteShaderUiMask2MaterialInspector.cs.meta b/Assets/Plugins/AllIn1SpriteShader/Scripts/Editor/AllIn1SpriteShaderUiMask2MaterialInspector.cs.meta new file mode 100644 index 000000000..aae5f0c64 --- /dev/null +++ b/Assets/Plugins/AllIn1SpriteShader/Scripts/Editor/AllIn1SpriteShaderUiMask2MaterialInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2634386595cc60d40ae4e46b9ae970c0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/AllIn1SpriteShader/Shaders/AllIn1SpriteShaderUiMask2.shader b/Assets/Plugins/AllIn1SpriteShader/Shaders/AllIn1SpriteShaderUiMask2.shader new file mode 100644 index 000000000..07b14e295 --- /dev/null +++ b/Assets/Plugins/AllIn1SpriteShader/Shaders/AllIn1SpriteShaderUiMask2.shader @@ -0,0 +1,1258 @@ +Shader "AllIn1SpriteShader/AllIn1SpriteShaderUiMask2" +{ + Properties + { + _MainTex ("Main Texture", 2D) = "white" {} //0 + _Color("Main Color", Color) = (1,1,1,1) //1 + _Alpha("General Alpha", Range(0,1)) = 1 //2 + + _GlowColor("Glow Color", Color) = (1,1,1,1) //3 + _Glow("Glow Color Intensity", Range(0,100)) = 10 //4 + _GlowGlobal("Global Glow Intensity", Range(1,100)) = 1 //5 + [NoScaleOffset] _GlowTex("Glow Texture", 2D) = "white" {} //6 + + _FadeTex("Fade Texture", 2D) = "white" {} //7 + _FadeAmount("Fade Amount", Range(-0.1,1)) = -0.1 //8 + _FadeBurnWidth("Fade Burn Width", Range(0,1)) = 0.025 //9 + _FadeBurnTransition("Burn Transition", Range(0.01,0.5)) = 0.075 //10 + _FadeBurnColor("Fade Burn Color", Color) = (1,1,0,1) //11 + _FadeBurnTex("Fade Burn Texture", 2D) = "white" {} //12 + _FadeBurnGlow("Fade Burn Glow", Range(1,250)) = 2//13 + + _OutlineColor("Outline Base Color", Color) = (1,1,1,1) //14 + _OutlineAlpha("Outline Base Alpha", Range(0,1)) = 1 //15 + _OutlineGlow("Outline Base Glow", Range(1,100)) = 1.5 //16 + _OutlineWidth("Outline Base Width", Range(0,0.2)) = 0.004 //17 + _OutlinePixelWidth("Outline Base Pixel Width", Int) = 1 //18 + + [Space] + _OutlineTex("Outline Texture", 2D) = "white" {} //19 + _OutlineTexXSpeed("Texture scroll speed X", Range(-50,50)) = 10 //20 + _OutlineTexYSpeed("Texture scroll speed Y", Range(-50,50)) = 0 //21 + + [Space] + _OutlineDistortTex("Outline Distortion Texture", 2D) = "white" {} //22 + _OutlineDistortAmount("Outline Distortion Amount", Range(0,2)) = 0.5 //23 + _OutlineDistortTexXSpeed("Distortion scroll speed X", Range(-50,50)) = 5 //24 + _OutlineDistortTexYSpeed("Distortion scroll speed Y", Range(-50,50)) = 5 //25 + + _AlphaOutlineColor("Color", Color) = (1, 1, 1, 1) //26 + _AlphaOutlineGlow("Outline Glow", Range(1,100)) = 5 //27 + _AlphaOutlinePower("Power", Range(0, 5)) = 1 // 28 + _AlphaOutlineMinAlpha("Min Alpha", Range(0, 1)) = 0 // 29 + _AlphaOutlineBlend("Blend", Range(0, 1)) = 1 // 30 + + _GradBlend("Gradient Blend", Range(0,1)) = 1 //31 + _GradTopLeftCol("Top Color", Color) = (1,0,0,1) //32 + _GradTopRightCol("Top Color 2", Color) = (1, 1, 0, 1) //33 + _GradBotLeftCol("Bot Color", Color) = (0,0,1,1) //34 + _GradBotRightCol("Bot Color 2", Color) = (0, 1, 0, 1) //35 + + [NoScaleOffset] _ColorSwapTex("Color Swap Texture", 2D) = "black" {} //36 + [HDR] _ColorSwapRed("Red Channel", Color) = (1,1,1,1) //37 + _ColorSwapRedLuminosity("Red luminosity", Range(-1,1)) = 0.5 //38 + [HDR] _ColorSwapGreen("Green Channel", Color) = (1,1,1,1) //39 + _ColorSwapGreenLuminosity("Green luminosity", Range(-1,1)) = 0.5 //40 + [HDR] _ColorSwapBlue("Blue Channel", Color) = (1,1,1,1) //41 + _ColorSwapBlueLuminosity("Blue luminosity", Range(-1,1)) = 0.5 //42 + + _HsvShift("Hue Shift", Range(0, 360)) = 180 //43 + _HsvSaturation("Saturation", Range(0, 2)) = 1 //44 + _HsvBright("Brightness", Range(0, 2)) = 1 //45 + + _HitEffectColor("Hit Effect Color", Color) = (1,1,1,1) //46 + _HitEffectGlow("Glow Intensity", Range(1,100)) = 5 //47 + [Space] + _HitEffectBlend("Hit Effect Blend", Range(0,1)) = 1 //48 + + _NegativeAmount("Negative Amount", Range(0, 1)) = 1 //49 + + _PixelateSize("Pixelate size", Range(4,512)) = 32 //50 + + [NoScaleOffset] _ColorRampTex("Color ramp Texture", 2D) = "white" {} //51 + _ColorRampLuminosity("Color ramp luminosity", Range(-1,1)) = 0 //52 + [Toggle()] _ColorRampOutline("Affects everything?", float) = 0 //53 + + _GreyscaleLuminosity("Greyscale luminosity", Range(-1,1)) = 0 //54 + [Toggle()] _GreyscaleOutline("Affects everything?", float) = 0 //55 + _GreyscaleTintColor("Greyscale Tint Color", Color) = (1,1,1,1) //56 + + _PosterizeNumColors("Number of Colors", Range(0,100)) = 8 //57 + _PosterizeGamma("Posterize Amount", Range(0.1,10)) = 0.75 //58 + [Toggle()] _PosterizeOutline("Affects everything?", float) = 0 //59 + + _BlurIntensity("Blur Intensity", Range(0,100)) = 10 //60 + [Toggle()] _BlurHD("Blur is Low Res?", float) = 0 //61 + + _MotionBlurAngle("Motion Blur Angle", Range(-1, 1)) = 0.1 //62 + _MotionBlurDist("Motion Blur Distance", Range(-3, 3)) = 1.25 //63 + + _GhostColorBoost("Ghost Color Boost", Range(0,5)) = 1 //64 + _GhostTransparency("Ghost Transparency", Range(0,1)) = 0 //65 + + _InnerOutlineColor("Inner Outline Color", Color) = (1,0,0,1) //66 + _InnerOutlineThickness("Outline Thickness", Range(0,3)) = 1 //67 + _InnerOutlineAlpha("Inner Outline Alpha", Range(0,1)) = 1 //68 + _InnerOutlineGlow("Inner Outline Glow", Range(1,250)) = 4 //69 + + _AlphaCutoffValue("Alpha cutoff value", Range(0, 1)) = 0.25 //70 + + [Toggle()] _OnlyOutline("Only render outline?", float) = 0 //71 + [Toggle()] _OnlyInnerOutline("Only render inner outline?", float) = 0 //72 + + _HologramStripesAmount("Stripes Amount", Range(0, 1)) = 0.1 //73 + _HologramUnmodAmount("Unchanged Amount", Range(0, 1)) = 0.0 //74 + _HologramStripesSpeed("Stripes Speed", Range(-20, 20)) = 4.5 //75 + _HologramMinAlpha("Min Alpha", Range(0, 1)) = 0.1 //76 + _HologramMaxAlpha("Max Alpha", Range(0, 100)) = 0.75 //77 + + _ChromAberrAmount("ChromAberr Amount", Range(0, 1)) = 1 //78 + _ChromAberrAlpha("ChromAberr Alpha", Range(0, 1)) = 0.4 //79 + + _GlitchAmount("Glitch Amount", Range(0, 20)) = 3 //80 + + _FlickerPercent("Flicker Percent", Range(0, 1)) = 0.05 //81 + _FlickerFreq("Flicker Frequency", Range(0, 5)) = 0.2 //82 + _FlickerAlpha("Flicker Alpha", Range(0, 1)) = 0 //83 + + _ShadowX("Shadow X Axis", Range(-0.5, 0.5)) = 0.1 //84 + _ShadowY("Shadow Y Axis", Range(-0.5, 0.5)) = -0.05 //85 + _ShadowAlpha("Shadow Alpha", Range(0, 1)) = 0.5 //86 + _ShadowColor("Shadow Color", Color) = (0, 0, 0, 1) //87 + + _HandDrawnAmount("Hand Drawn Amount", Range(0, 20)) = 10 //88 + _HandDrawnSpeed("Hand Drawn Speed", Range(1, 15)) = 5 //89 + + _GrassSpeed("Speed", Range(0,50)) = 2 //90 + _GrassWind("Bend amount", Range(0,50)) = 20 //91 + [Space] + [Toggle()] _GrassManualToggle("Manually animated?", float) = 0 //92 + _GrassManualAnim("Manual Anim Value", Range(-1,1)) = 1 //93 + + _WaveAmount("Wave Amount", Range(0, 25)) = 7 //94 + _WaveSpeed("Wave Speed", Range(0, 25)) = 10 //95 + _WaveStrength("Wave Strength", Range(0, 25)) = 7.5 //96 + _WaveX("Wave X Axis", Range(0, 1)) = 0 //97 + _WaveY("Wave Y Axis", Range(0, 1)) = 0.5 //98 + + _RectSize("Rect Size", Range(1, 4)) = 1 //99 + + _OffsetUvX("X axis", Range(-1, 1)) = 0 //100 + _OffsetUvY("Y axis", Range(-1, 1)) = 0 //101 + + _ClipUvLeft("Clipping Left", Range(0, 1)) = 0 //102 + _ClipUvRight("Clipping Right", Range(0, 1)) = 0 //103 + _ClipUvUp("Clipping Up", Range(0, 1)) = 0 //104 + _ClipUvDown("Clipping Down", Range(0, 1)) = 0 //105 + + _TextureScrollXSpeed("Speed X Axis", Range(-5, 5)) = 1 //106 + _TextureScrollYSpeed("Speed Y Axis", Range(-5, 5)) = 0 //107 + + _ZoomUvAmount("Zoom Amount", Range(0.1, 5)) = 0.5 //108 + + _DistortTex("Distortion Texture", 2D) = "white" {} //109 + _DistortAmount("Distortion Amount", Range(0,2)) = 0.5 //110 + _DistortTexXSpeed("Scroll speed X", Range(-50,50)) = 5 //111 + _DistortTexYSpeed("Scroll speed Y", Range(-50,50)) = 5 //112 + + _TwistUvAmount("Twist Amount", Range(0, 3.1416)) = 1 //113 + _TwistUvPosX("Twist Pos X Axis", Range(0, 1)) = 0.5 //114 + _TwistUvPosY("Twist Pos Y Axis", Range(0, 1)) = 0.5 //115 + _TwistUvRadius("Twist Radius", Range(0, 3)) = 0.75 //116 + + _RotateUvAmount("Rotate Angle(radians)", Range(0, 6.2831)) = 0 //117 + + _FishEyeUvAmount("Fish Eye Amount", Range(0, 0.5)) = 0.35 //118 + + _PinchUvAmount("Pinch Amount", Range(0, 0.5)) = 0.35 //119 + + _ShakeUvSpeed("Shake Speed", Range(0, 20)) = 2.5 //120 + _ShakeUvX("X Multiplier", Range(0, 5)) = 1.5 //121 + _ShakeUvY("Y Multiplier", Range(0, 5)) = 1 //122 + + _ColorChangeTolerance("Tolerance", Range(0, 1)) = 0.25 //123 + _ColorChangeTarget("Color to change", Color) = (1, 0, 0, 1) //124 + [HDR] _ColorChangeNewCol("New Color", Color) = (1, 1, 0, 1) //125 + _ColorChangeLuminosity("New Color Luminosity", Range(0, 1)) = 0.0 //126 + + _RoundWaveStrength("Wave Strength", Range(0, 1)) = 0.7 //127 + _RoundWaveSpeed("Wave Speed", Range(0, 5)) = 2 //128 + + [Toggle()] _BillboardY("Billboard on both axis?", float) = 0 //129 + _ZWrite ("Depth Write", Float) = 0.0 // 130 + + _MySrcMode ("SrcMode", Float) = 5 // 131 + _MyDstMode ("DstMode", Float) = 10 // 132 + + _ShineColor("Shine Color", Color) = (1,1,1,1) // 133 + _ShineLocation("Shine Location", Range(0,1)) = 0.5 // 134 + _ShineRotate("Rotate Angle(radians)", Range(0, 6.2831)) = 0 //135 + _ShineWidth("Shine Width", Range(0.05,1)) = 0.1 // 136 + _ShineGlow("Shine Glow", Range(0,100)) = 1 // 137 + [NoScaleOffset] _ShineMask("Shine Mask", 2D) = "white" {} // 138 + + _GlitchSize("Glitch Size", Range(0.25, 5)) = 1 //139 + _HologramStripeColor("Stripes Color", Color) = (0,1,1,1) //140 + _GradBoostX("Boost X axis", Range(0.1, 5)) = 1.2 //141 + _GradBoostY("Boost Y axis", Range(0.1, 5)) = 1.2 //142 + [Toggle()] _GradIsRadial("Radial Gradient?", float) = 0 //143 + _AlphaRoundThreshold("Round Threshold", Range(0.005, 1.0)) = 0.5 //144 + _GrassRadialBend("Radial Bend", Range(0.0, 5.0)) = 0.1 //145 + + _ColorChangeTolerance2("Tolerance 2", Range(0, 1)) = 0.25 //146 + _ColorChangeTarget2("Color to change 2", Color) = (1, 0, 0, 1) //147 + [HDR] _ColorChangeNewCol2("New Color 2", Color) = (1, 1, 0, 1) //148 + _ColorChangeTolerance3("Tolerance 3", Range(0, 1)) = 0.25 //149 + _ColorChangeTarget3("Color to change 3", Color) = (1, 0, 0, 1) //150 + [HDR] _ColorChangeNewCol3("New Color 3", Color) = (1, 1, 0, 1) //151 + + _Contrast ("Contrast", Range(0, 6)) = 1 // 152 + _Brightness ("Brightness", Range(-1, 1)) = 0 // 153 + + _ColorSwapBlend ("Color Swap Blend", Range(0, 1)) = 1 // 154 + _ColorRampBlend ("Color Ramp Blend", Range(0, 1)) = 1 // 155 + _GreyscaleBlend ("Greyscale Blend", Range(0, 1)) = 1 // 156 + _GhostBlend ("Ghost Blend", Range(0, 1)) = 1 // 157 + _HologramBlend ("Hologram Blend", Range(0, 1)) = 1 // 158 + + [AllIn1ShaderGradient] _ColorRampTexGradient("Color ramp Gradient", 2D) = "white" {} //159 + + _OverlayTex("Overlay Texture", 2D) = "white" {} //160 + _OverlayColor("Overlay Color", Color) = (1, 1, 1, 1) //161 + _OverlayGlow("Overlay Glow", Range(0,25)) = 1 // 162 + _OverlayBlend("Overlay Blend", Range(0, 1)) = 1 // 163 + + _RadialStartAngle("Radial Start Angle", Range(0, 360)) = 90 //164 + _RadialClip("Radial Clip", Range(0, 360)) = 45 //165 + _RadialClip2("Radial Clip 2", Range(0, 360)) = 0 //166 + + _WarpStrength("Warp Strength", Range(0, 0.1)) = 0.025 //167 + _WarpSpeed("Warp Speed", Range(0, 25)) = 8 //168 + _WarpScale("Warp Scale", Range(0.05, 3)) = 0.5 //169 + + _OverlayTextureScrollXSpeed("Speed X Axis", Range(-5, 5)) = 0.25 //170 + _OverlayTextureScrollYSpeed("Speed Y Axis", Range(-5, 5)) = 0.25 //171 + _OutlineTexRotationSpeed("Outline Rotation Speed (rad/s)", Float) = 0 // 172 + + _Stencil ("Stencil ID", Float) = 0 + _StencilComp ("Stencil Comparison", Float) = 8 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + _ColorMask ("Color Mask", Float) = 15 + + [HideInInspector] _MinXUV("_MinXUV", Range(0, 1)) = 0.0 + [HideInInspector] _MaxXUV("_MaxXUV", Range(0, 1)) = 1.0 + [HideInInspector] _MinYUV("_MinYUV", Range(0, 1)) = 0.0 + [HideInInspector] _MaxYUV("_MaxYUV", Range(0, 1)) = 1.0 + [HideInInspector] _RandomSeed("_MaxYUV", Range(0, 10000)) = 0.0 + _EditorDrawers("Editor Drawers", Int) = 6 + } + + SubShader + { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" } + Blend [_MySrcMode] [_MyDstMode] + Cull Off + ZWrite Off + ZTest [unity_GUIZTestMode] + ColorMask [_ColorMask] + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_instancing + + #pragma shader_feature_local GLOW_ON + #pragma shader_feature_local FADE_ON + #pragma shader_feature_local OUTBASE_ON + #pragma shader_feature_local ONLYOUTLINE_ON + #pragma shader_feature_local GRADIENT_ON + #pragma shader_feature_local GRADIENT2COL_ON + #pragma shader_feature_local RADIALGRADIENT_ON + #pragma shader_feature_local COLORSWAP_ON + #pragma shader_feature_local HSV_ON + #pragma shader_feature_local CHANGECOLOR_ON + #pragma shader_feature_local CHANGECOLOR2_ON + #pragma shader_feature_local CHANGECOLOR3_ON + #pragma shader_feature_local COLORRAMP_ON + #pragma shader_feature_local GRADIENTCOLORRAMP_ON + #pragma shader_feature_local HITEFFECT_ON + #pragma shader_feature_local NEGATIVE_ON + #pragma shader_feature_local PIXELATE_ON + #pragma shader_feature_local GREYSCALE_ON + #pragma shader_feature_local POSTERIZE_ON + #pragma shader_feature_local BLUR_ON + #pragma shader_feature_local MOTIONBLUR_ON + #pragma shader_feature_local GHOST_ON + #pragma shader_feature_local ALPHAOUTLINE_ON + #pragma shader_feature_local INNEROUTLINE_ON + #pragma shader_feature_local ONLYINNEROUTLINE_ON + #pragma shader_feature_local HOLOGRAM_ON + #pragma shader_feature_local CHROMABERR_ON + #pragma shader_feature_local GLITCH_ON + #pragma shader_feature_local FLICKER_ON + #pragma shader_feature_local SHADOW_ON + #pragma shader_feature_local SHINE_ON + #pragma shader_feature_local CONTRAST_ON + #pragma shader_feature_local OVERLAY_ON + #pragma shader_feature_local OVERLAYMULT_ON + #pragma shader_feature_local ALPHACUTOFF_ON + #pragma shader_feature_local ALPHAROUND_ON + #pragma shader_feature_local DOODLE_ON + #pragma shader_feature_local WIND_ON + #pragma shader_feature_local WAVEUV_ON + #pragma shader_feature_local ROUNDWAVEUV_ON + #pragma shader_feature_local RECTSIZE_ON + #pragma shader_feature_local OFFSETUV_ON + #pragma shader_feature_local CLIPPING_ON + #pragma shader_feature_local RADIALCLIPPING_ON + #pragma shader_feature_local TEXTURESCROLL_ON + #pragma shader_feature_local ZOOMUV_ON + #pragma shader_feature_local DISTORT_ON + #pragma shader_feature_local WARP_ON + #pragma shader_feature_local TWISTUV_ON + #pragma shader_feature_local ROTATEUV_ON + #pragma shader_feature_local POLARUV_ON + #pragma shader_feature_local FISHEYE_ON + #pragma shader_feature_local PINCH_ON + #pragma shader_feature_local SHAKEUV_ON + + #pragma shader_feature_local GLOWTEX_ON + #pragma shader_feature_local OUTTEX_ON + #pragma shader_feature_local OUTDIST_ON + #pragma shader_feature_local OUTBASE8DIR_ON + #pragma shader_feature_local OUTBASEPIXELPERF_ON + #pragma shader_feature_local COLORRAMPOUTLINE_ON + #pragma shader_feature_local GREYSCALEOUTLINE_ON + #pragma shader_feature_local POSTERIZEOUTLINE_ON + #pragma shader_feature_local BLURISHD_ON + #pragma shader_feature_local MANUALWIND_ON + #pragma shader_feature ATLAS_ON + #pragma shader_feature PREMULTIPLYALPHA_ON + + #pragma multi_compile _ UNITY_UI_CLIP_RECT + #pragma multi_compile _ UNITY_UI_ALPHACLIP + + #include "UnityCG.cginc" + #include "AllIn1OneShaderFunctions.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + half4 color : COLOR; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + half4 color : COLOR; + #if OUTTEX_ON + half2 uvOutTex : TEXCOORD1; + #endif + #if OUTDIST_ON + half2 uvOutDistTex : TEXCOORD2; + #endif + #if DISTORT_ON + half2 uvDistTex : TEXCOORD3; + #endif + #if UNITY_UI_CLIP_RECT + half4 mask : TEXCOORD4; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + #if UNITY_UI_CLIP_RECT + float4 _ClipRect; + half _UIMaskSoftnessX, _UIMaskSoftnessY; + #endif + + sampler2D _MainTex; + half4 _MainTex_ST, _MainTex_TexelSize, _Color; + half _Alpha; + + #if ATLAS_ON + half _MinXUV, _MaxXUV, _MinYUV, _MaxYUV; + #endif + + #if RECTSIZE_ON + half _RectSize; + #endif + + #if OFFSETUV_ON + half _OffsetUvX, _OffsetUvY; + #endif + + #if CLIPPING_ON + half _ClipUvLeft, _ClipUvRight, _ClipUvUp, _ClipUvDown; + #endif + + #if RADIALCLIPPING_ON + half _RadialStartAngle, _RadialClip, _RadialClip2; + #endif + + #if TWISTUV_ON + half _TwistUvAmount, _TwistUvPosX, _TwistUvPosY, _TwistUvRadius; + #endif + + #if ROTATEUV_ON + half _RotateUvAmount; + #endif + + #if FISHEYE_ON + half _FishEyeUvAmount; + #endif + + #if PINCH_ON + half _PinchUvAmount; + #endif + + #if DOODLE_ON + half _HandDrawnAmount, _HandDrawnSpeed; + #endif + + #if SHAKEUV_ON + half _ShakeUvSpeed, _ShakeUvX, _ShakeUvY; + #endif + + #if WAVEUV_ON + float _WaveAmount, _WaveSpeed, _WaveStrength, _WaveX, _WaveY; + #endif + + #if ROUNDWAVEUV_ON + half _RoundWaveStrength, _RoundWaveSpeed; + #endif + + #if ZOOMUV_ON + half _ZoomUvAmount; + #endif + + #if FADE_ON + sampler2D _FadeTex, _FadeBurnTex; + half4 _FadeBurnColor, _FadeTex_ST, _FadeBurnTex_ST; + half _FadeAmount, _FadeBurnWidth, _FadeBurnTransition,_FadeBurnGlow; + #endif + + #if TEXTURESCROLL_ON + half _TextureScrollXSpeed, _TextureScrollYSpeed; + #endif + + #if GLOW_ON + sampler2D _GlowTex; + half4 _GlowColor; + half _Glow, _GlowGlobal; + #endif + + #if OUTBASE_ON + half4 _OutlineColor; + half _OutlineAlpha, _OutlineGlow, _OutlineWidth; + int _OutlinePixelWidth; + #endif + + #if OUTTEX_ON + sampler2D _OutlineTex; + half4 _OutlineTex_ST; + half _OutlineTexXSpeed, _OutlineTexYSpeed; + half _OutlineTexRotationSpeed; + #endif + + #if OUTDIST_ON + sampler2D _OutlineDistortTex; + half4 _OutlineDistortTex_ST; + half _OutlineDistortTexXSpeed, _OutlineDistortTexYSpeed, _OutlineDistortAmount; + #endif + + #if DISTORT_ON + sampler2D _DistortTex; + half4 _DistortTex_ST; + half _DistortTexXSpeed, _DistortTexYSpeed, _DistortAmount; + #endif + + #if WARP_ON + half _WarpStrength, _WarpSpeed, _WarpScale; + #endif + + #if WIND_ON + half _GrassSpeed, _GrassWind, _GrassManualAnim, _GrassRadialBend; + #endif + + #if GRADIENT_ON + half _GradBlend, _GradBoostX, _GradBoostY; + half4 _GradTopRightCol, _GradTopLeftCol, _GradBotRightCol, _GradBotLeftCol; + #endif + + #if COLORSWAP_ON + sampler2D _ColorSwapTex; + half4 _ColorSwapRed, _ColorSwapGreen, _ColorSwapBlue; + half _ColorSwapRedLuminosity, _ColorSwapGreenLuminosity, _ColorSwapBlueLuminosity, _ColorSwapBlend; + #endif + + #if HSV_ON + half _HsvShift, _HsvSaturation, _HsvBright; + #endif + + #if HITEFFECT_ON + half4 _HitEffectColor; + half _HitEffectGlow, _HitEffectBlend; + #endif + + #if PIXELATE_ON + half _PixelateSize; + #endif + + #if NEGATIVE_ON + half _NegativeAmount; + #endif + + #if COLORRAMP_ON + sampler2D _ColorRampTex, _ColorRampTexGradient; + half _ColorRampLuminosity, _ColorRampBlend; + #endif + + #if GREYSCALE_ON + half _GreyscaleLuminosity, _GreyscaleBlend; + half4 _GreyscaleTintColor; + #endif + + #if POSTERIZE_ON + half _PosterizeNumColors, _PosterizeGamma; + #endif + + #if BLUR_ON + half _BlurIntensity; + #endif + + #if MOTIONBLUR_ON + half _MotionBlurAngle, _MotionBlurDist; + #endif + + #if GHOST_ON + half _GhostColorBoost, _GhostTransparency, _GhostBlend; + #endif + + #if ALPHAOUTLINE_ON + half _AlphaOutlineGlow, _AlphaOutlinePower, _AlphaOutlineMinAlpha, _AlphaOutlineBlend; + half4 _AlphaOutlineColor; + #endif + + #if INNEROUTLINE_ON + half _InnerOutlineThickness, _InnerOutlineAlpha, _InnerOutlineGlow; + half4 _InnerOutlineColor; + #endif + + #if HOLOGRAM_ON + half _HologramStripesAmount, _HologramMinAlpha, _HologramUnmodAmount, _HologramStripesSpeed, _HologramMaxAlpha, _HologramBlend; + half4 _HologramStripeColor; + #endif + + #if CHROMABERR_ON + half _ChromAberrAmount, _ChromAberrAlpha; + #endif + + #if GLITCH_ON + half _GlitchAmount, _GlitchSize; + #endif + + #if FLICKER_ON + half _FlickerFreq, _FlickerPercent, _FlickerAlpha; + #endif + + #if SHADOW_ON + half _ShadowX, _ShadowY, _ShadowAlpha; + half4 _ShadowColor; + #endif + + #if SHINE_ON + sampler2D _ShineMask; + half4 _ShineColor; + half _ShineLocation, _ShineRotate, _ShineWidth, _ShineGlow; + #endif + + #if ALPHACUTOFF_ON + half _AlphaCutoffValue; + #endif + + #if ALPHAROUND_ON + half _AlphaRoundThreshold; + #endif + + #if CHANGECOLOR_ON + half4 _ColorChangeNewCol, _ColorChangeTarget; + half _ColorChangeTolerance, _ColorChangeLuminosity; + #endif + #if CHANGECOLOR2_ON + half4 _ColorChangeNewCol2, _ColorChangeTarget2; + half _ColorChangeTolerance2; + #endif + #if CHANGECOLOR3_ON + half4 _ColorChangeNewCol3, _ColorChangeTarget3; + half _ColorChangeTolerance3; + #endif + + #if CONTRAST_ON + half _Contrast, _Brightness; + #endif + + #if OVERLAY_ON + sampler2D _OverlayTex; + half4 _OverlayTex_ST, _OverlayColor; + half _OverlayGlow, _OverlayBlend, _OverlayTextureScrollXSpeed, _OverlayTextureScrollYSpeed; + #endif + + UNITY_INSTANCING_BUFFER_START(Props) + UNITY_DEFINE_INSTANCED_PROP(float, _RandomSeed) + UNITY_INSTANCING_BUFFER_END(Props) + + v2f vert(appdata v) + { + #if RECTSIZE_ON + v.vertex.xyz += (v.vertex.xyz * (_RectSize - 1.0)); + #endif + + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + o.color = v.color; + + #if UNITY_UI_CLIP_RECT + half2 pixelSize = o.vertex.w; + pixelSize /= half2(1, 1) * abs(mul((half2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + half4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + half2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + o.mask = half4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); + #endif + + half2 center = half2(0.5, 0.5); + #if ATLAS_ON + center = half2((_MaxXUV + _MinXUV) / 2.0, (_MaxYUV + _MinYUV) / 2.0); + #endif + + #if POLARUV_ON + o.uv = v.uv - center; + #endif + + #if ROTATEUV_ON + half2 uvC = v.uv; + half cosAngle = cos(_RotateUvAmount); + half sinAngle = sin(_RotateUvAmount); + half2x2 rot = half2x2(cosAngle, -sinAngle, sinAngle, cosAngle); + uvC -= center; + o.uv = mul(rot, uvC); + o.uv += center; + #endif + + #if OUTTEX_ON + o.uvOutTex = TRANSFORM_TEX(v.uv, _OutlineTex); + #endif + + #if OUTDIST_ON + o.uvOutDistTex = TRANSFORM_TEX(v.uv, _OutlineDistortTex); + #endif + + #if DISTORT_ON + o.uvDistTex = TRANSFORM_TEX(v.uv, _DistortTex); + #endif + + return o; + } + + half3 GetPixel(in int offsetX, in int offsetY, half2 uv, sampler2D tex) + { + return tex2D(tex, (uv + half2(offsetX * _MainTex_TexelSize.x, offsetY * _MainTex_TexelSize.y))).rgb; + } + + half4 frag(v2f i) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + half randomSeed = UNITY_ACCESS_INSTANCED_PROP(Props, _RandomSeed); + + float2 uvRect = i.uv; + half2 center = half2(0.5, 0.5); + #if ATLAS_ON + center = half2((_MaxXUV + _MinXUV) / 2.0, (_MaxYUV + _MinYUV) / 2.0); + uvRect = half2((i.uv.x - _MinXUV) / (_MaxXUV - _MinXUV), (i.uv.y - _MinYUV) / (_MaxYUV - _MinYUV)); + #endif + half2 centerTiled = half2(center.x * _MainTex_ST.x, center.y * _MainTex_ST.y); + + #if CLIPPING_ON + half2 tiledUv = half2(i.uv.x / _MainTex_ST.x, i.uv.y / _MainTex_ST.y); + #if ATLAS_ON + tiledUv = half2((tiledUv.x - _MinXUV) / (_MaxXUV - _MinXUV), (tiledUv.y - _MinYUV) / (_MaxYUV - _MinYUV)); + #endif + clip((1 - _ClipUvUp) - tiledUv.y); + clip(tiledUv.y - _ClipUvDown); + clip((1 - _ClipUvRight) - tiledUv.x); + clip(tiledUv.x - _ClipUvLeft); + #endif + + #if RADIALCLIPPING_ON + half2 tiledUv2 = half2(i.uv.x / _MainTex_ST.x, i.uv.y / _MainTex_ST.y); + #if ATLAS_ON + tiledUv2 = half2((tiledUv2.x - _MinXUV) / (_MaxXUV - _MinXUV), (tiledUv2.y - _MinYUV) / (_MaxYUV - _MinYUV)); + #endif + half startAngle = _RadialStartAngle - _RadialClip; + half endAngle = _RadialStartAngle + _RadialClip2; + half offset0 = clamp(0, 360, startAngle + 360); + half offset360 = clamp(0, 360, endAngle - 360); + half2 atan2Coord = half2(lerp(-1, 1, tiledUv2.x), lerp(-1, 1, tiledUv2.y)); + half atanAngle = atan2(atan2Coord.y, atan2Coord.x) * 57.3; // angle in degrees + if(atanAngle < 0) atanAngle = 360 + atanAngle; + if(atanAngle >= startAngle && atanAngle <= endAngle) discard; + if(atanAngle <= offset360) discard; + if(atanAngle >= offset0) discard; + #endif + + #if TEXTURESCROLL_ON && ATLAS_ON + i.uv = half2(_MinXUV + ((_MaxXUV - _MinXUV) * (abs(((_Time.y + randomSeed) * _TextureScrollXSpeed) + uvRect.x) % 1)), + _MinYUV + ((_MaxYUV - _MinYUV) * (abs(((_Time.y + randomSeed) * _TextureScrollYSpeed) + uvRect.y) % 1))); + #endif + + #if OFFSETUV_ON + #if ATLAS_ON + i.uv = half2(_MinXUV + ((_MaxXUV - _MinXUV) * (abs((_OffsetUvX + uvRect.x) % 1))), + _MinYUV + ((_MaxYUV - _MinYUV) * (abs(_OffsetUvY + uvRect.y) % 1))); + #else + i.uv += half2(_OffsetUvX, _OffsetUvY); + #endif + #endif + + #if POLARUV_ON + i.uv = half2(atan2(i.uv.y, i.uv.x) / (2.0f * 3.141592653589f), length(i.uv)); + i.uv *= _MainTex_ST.xy; + #endif + + #if TWISTUV_ON + #if ATLAS_ON + _TwistUvPosX = ((_MaxXUV - _MinXUV) * _TwistUvPosX) + _MinXUV; + _TwistUvPosY = ((_MaxYUV - _MinYUV) * _TwistUvPosY) + _MinYUV; + #endif + half2 tempUv = i.uv - half2(_TwistUvPosX * _MainTex_ST.x, _TwistUvPosY * _MainTex_ST.y); + _TwistUvRadius *= (_MainTex_ST.x + _MainTex_ST.y) / 2; + half percent = (_TwistUvRadius - length(tempUv)) / _TwistUvRadius; + half theta = percent * percent * (2.0 * sin(_TwistUvAmount)) * 8.0; + half s = sin(theta); + half c = cos(theta); + half beta = max(sign(_TwistUvRadius - length(tempUv)), 0.0); + tempUv = half2(dot(tempUv, half2(c, -s)), dot(tempUv, half2(s, c))) * beta + tempUv * (1 - beta); + tempUv += half2(_TwistUvPosX * _MainTex_ST.x, _TwistUvPosY * _MainTex_ST.y); + i.uv = tempUv; + #endif + + #if FISHEYE_ON + half bind = length(centerTiled); + half2 dF = i.uv - centerTiled; + half dFlen = length(dF); + half fishInt = (3.14159265359 / bind) * (_FishEyeUvAmount + 0.001); + i.uv = centerTiled + (dF / (max(0.0001, dFlen))) * tan(dFlen * fishInt) * bind / tan(bind * fishInt); + #endif + + #if PINCH_ON + half2 dP = i.uv - centerTiled; + half pinchInt = (3.141592 / length(centerTiled)) * (-_PinchUvAmount + 0.001); + i.uv = centerTiled + normalize(dP) * atan(length(dP) * -pinchInt * 10.0) * 0.5 / atan(-pinchInt * 5); + #endif + + #if ZOOMUV_ON + i.uv -= centerTiled; + i.uv = i.uv * _ZoomUvAmount; + i.uv += centerTiled; + #endif + + #if DOODLE_ON + half2 uvCopy = uvRect; + _HandDrawnSpeed = (floor((_Time.x + randomSeed) * 20 * _HandDrawnSpeed) / _HandDrawnSpeed) * _HandDrawnSpeed; + uvCopy.x = sin((uvCopy.x * _HandDrawnAmount + _HandDrawnSpeed) * 4); + uvCopy.y = cos((uvCopy.y * _HandDrawnAmount + _HandDrawnSpeed) * 4); + i.uv = lerp(i.uv, i.uv + uvCopy, 0.0005 * _HandDrawnAmount); + #endif + + #if SHAKEUV_ON + half xShake = sin((_Time.x + randomSeed) * _ShakeUvSpeed * 50) * _ShakeUvX; + half yShake = cos((_Time.x + randomSeed) * _ShakeUvSpeed * 50) * _ShakeUvY; + i.uv += half2(xShake * 0.012, yShake * 0.01); + #endif + + #if RECTSIZE_ON + i.uv = i.uv.xy * (_RectSize).xx + (((-_RectSize * 0.5) + 0.5)).xx; + #endif + + #if DISTORT_ON + #if ATLAS_ON + i.uvDistTex.x = i.uvDistTex.x * (1 / (_MaxXUV - _MinXUV)); + i.uvDistTex.y = i.uvDistTex.y * (1 / (_MaxYUV - _MinYUV)); + #endif + i.uvDistTex.x += ((_Time.x + randomSeed) * _DistortTexXSpeed) % 1; + i.uvDistTex.y += ((_Time.x + randomSeed) * _DistortTexYSpeed) % 1; + half distortAmnt = (tex2D(_DistortTex, i.uvDistTex).r - 0.5) * 0.2 * _DistortAmount; + i.uv.x += distortAmnt; + i.uv.y += distortAmnt; + #endif + + #if WARP_ON + half2 warpUv = half2(i.uv.x / _MainTex_ST.x, i.uv.y / _MainTex_ST.y); + #if ATLAS_ON + warpUv = half2((warpUv.x - _MinXUV) / (_MaxXUV - _MinXUV), (warpUv.y - _MinYUV) / (_MaxYUV - _MinYUV)); + #endif + const float tau = 6.283185307179586; + float xWarp = (_Time.y + randomSeed) * _WarpSpeed + warpUv.x * tau / _WarpScale; + float yWarp = (_Time.y + randomSeed) * _WarpSpeed + warpUv.y * tau / _WarpScale; + float2 warp = float2(sin(xWarp), sin(yWarp)) * _WarpStrength; + i.uv += warp; + #endif + + #if WAVEUV_ON + float2 uvWave = half2(_WaveX * _MainTex_ST.x, _WaveY * _MainTex_ST.y) - i.uv; + uvWave %= 1; + #if ATLAS_ON + uvWave = half2(_WaveX, _WaveY) - uvRect; + #endif + uvWave.x *= _ScreenParams.x / _ScreenParams.y; + float waveTime = _Time.y + randomSeed; + float angWave = (sqrt(dot(uvWave, uvWave)) * _WaveAmount) - ((waveTime * _WaveSpeed)); + i.uv = i.uv + uvWave * sin(angWave) * (_WaveStrength / 1000.0); + #endif + + #if ROUNDWAVEUV_ON + half xWave = ((0.5 * _MainTex_ST.x) - uvRect.x); + half yWave = ((0.5 * _MainTex_ST.y) - uvRect.y) * (_MainTex_TexelSize.w / _MainTex_TexelSize.z); + half ripple = -sqrt(xWave*xWave + yWave* yWave); + i.uv += (sin((ripple + (_Time.y + randomSeed) * (_RoundWaveSpeed/10.0)) / 0.015) * (_RoundWaveStrength/10.0)) % 1; + #endif + + #if WIND_ON + half windOffset = sin((_Time.x + randomSeed) * _GrassSpeed * 10); + half2 windCenter = half2(0.5, 0.1); + #if ATLAS_ON + windCenter.x = ((_MaxXUV - _MinXUV) * windCenter.x) + _MinXUV; + windCenter.y = ((_MaxYUV - _MinYUV) * windCenter.y) + _MinYUV; + #endif + #if !MANUALWIND_ON + i.uv.x = fmod(abs(lerp(i.uv.x, i.uv.x + (_GrassWind * 0.01 * windOffset), uvRect.y)), 1); + #else + i.uv.x = fmod(abs(lerp(i.uv.x, i.uv.x + (_GrassWind * 0.01 * _GrassManualAnim), uvRect.y)), 1); + windOffset = _GrassManualAnim; + #endif + half2 delta = i.uv - windCenter; + half delta2 = dot(delta.xy, delta.xy); + half2 delta_offset = delta2 * windOffset; + i.uv = i.uv + half2(delta.y, -delta.x) * delta_offset * _GrassRadialBend; + #endif + + #if TEXTURESCROLL_ON && !ATLAS_ON + i.uv.x += ((_Time.y + randomSeed) * _TextureScrollXSpeed) % 1; + i.uv.y += ((_Time.y + randomSeed) * _TextureScrollYSpeed) % 1; + #endif + + #if PIXELATE_ON + half aspectRatio = _MainTex_TexelSize.x / _MainTex_TexelSize.y; + half2 pixelSize = float2(_PixelateSize, _PixelateSize * aspectRatio); + i.uv = floor(i.uv * pixelSize) / pixelSize; + #endif + + half4 col = tex2D(_MainTex, i.uv); + half originalAlpha = col.a; + col *= i.color; + #if PREMULTIPLYALPHA_ON + col.rgb *= col.a; + #endif + + #if GLITCH_ON + half2 uvGlitch = uvRect; + uvGlitch.y -= 0.5; + half lineNoise = pow(rand2(floor(uvGlitch * half2(24., 19.) * _GlitchSize) * 4.0, randomSeed), 3.0) * _GlitchAmount + * pow(rand2(floor(uvGlitch * half2(38., 14.) * _GlitchSize) * 4.0, randomSeed), 3.0); + col = tex2D(_MainTex, i.uv + half2(lineNoise * 0.02 * rand2(half2(2.0, 1), randomSeed), 0)) * i.color; + #endif + + #if CHROMABERR_ON + half4 r = tex2D(_MainTex, i.uv + half2(_ChromAberrAmount/10, 0)) * i.color; + half4 b = tex2D(_MainTex, i.uv + half2(-_ChromAberrAmount/10, 0)) * i.color; + col = half4(r.r * r.a, col.g, b.b * b.a, max(max(r.a, b.a) * _ChromAberrAlpha, col.a)); + #endif + + #if BLUR_ON + #if ATLAS_ON + #if !BLURISHD_ON + col = BlurHD(i.uv, _MainTex, _BlurIntensity, (_MaxXUV - _MinXUV), (_MaxYUV - _MinYUV)) * i.color; + #else + col = Blur(i.uv, _MainTex, _BlurIntensity * (_MaxXUV - _MinXUV)) * i.color; + #endif + #else + #if !BLURISHD_ON + col = BlurHD(i.uv, _MainTex, _BlurIntensity, 1, 1) * i.color; + #else + col = Blur(i.uv, _MainTex, _BlurIntensity) * i.color; + #endif + #endif + #endif + + #if MOTIONBLUR_ON + _MotionBlurAngle = _MotionBlurAngle * 3.1415926; + #define rot(n) mul(n, half2x2(cos(_MotionBlurAngle), -sin(_MotionBlurAngle), sin(_MotionBlurAngle), cos(_MotionBlurAngle))) + _MotionBlurDist = _MotionBlurDist * 0.005; + #if ATLAS_ON + _MotionBlurDist *= (_MaxXUV - _MinXUV); + #endif + col.rgb += tex2D(_MainTex, i.uv + rot(half2(-_MotionBlurDist, -_MotionBlurDist))); + col.rgb += tex2D(_MainTex, i.uv + rot(half2(-_MotionBlurDist * 2, -_MotionBlurDist * 2))); + col.rgb += tex2D(_MainTex, i.uv + rot(half2(-_MotionBlurDist * 3, -_MotionBlurDist * 3))); + col.rgb += tex2D(_MainTex, i.uv + rot(half2(-_MotionBlurDist * 4, -_MotionBlurDist * 4))); + col.rgb += tex2D(_MainTex, i.uv + rot(half2(_MotionBlurDist, _MotionBlurDist))); + col.rgb += tex2D(_MainTex, i.uv + rot(half2(_MotionBlurDist * 2, _MotionBlurDist * 2))); + col.rgb += tex2D(_MainTex, i.uv + rot(half2(_MotionBlurDist * 3, _MotionBlurDist * 3))); + col.rgb += tex2D(_MainTex, i.uv + rot(half2(_MotionBlurDist * 4, _MotionBlurDist * 4))); + col.rgb = col.rgb / 9; + #endif + + #if NEGATIVE_ON + col.rgb = lerp(col.rgb, 1 - col.rgb, _NegativeAmount); + #endif + + half luminance = 0; + #if GREYSCALE_ON && !GREYSCALEOUTLINE_ON + luminance = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b; + luminance = saturate(luminance + _GreyscaleLuminosity); + col.rgb = lerp(col.rgb, half3(luminance, luminance, luminance) * _GreyscaleTintColor, _GreyscaleBlend); + #endif + + #if GHOST_ON + luminance = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b; + half4 ghostResult; + ghostResult.a = saturate(luminance - _GhostTransparency) * col.a; + ghostResult.rgb = col.rgb * (luminance + _GhostColorBoost); + col = lerp(col, ghostResult, _GhostBlend); + #endif + + #if INNEROUTLINE_ON + half3 innerT = abs(GetPixel(0, _InnerOutlineThickness, i.uv, _MainTex) - GetPixel(0, -_InnerOutlineThickness, i.uv, _MainTex)); + innerT += abs(GetPixel(_InnerOutlineThickness, 0, i.uv, _MainTex) - GetPixel(-_InnerOutlineThickness, 0, i.uv, _MainTex)); + #if !ONLYINNEROUTLINE_ON + innerT = (innerT / 2.0) * col.a * _InnerOutlineAlpha; + col.rgb += length(innerT) * _InnerOutlineColor.rgb * _InnerOutlineGlow; + #else + innerT *= col.a * _InnerOutlineAlpha; + col.rgb = length(innerT) * _InnerOutlineColor.rgb * _InnerOutlineGlow; + col.a = step(0.3, col.r+col.g+col.b); + #endif + #endif + + #if HITEFFECT_ON + col.rgb = lerp(col.rgb, _HitEffectColor.rgb * _HitEffectGlow, _HitEffectBlend); + #endif + + #if GRADIENT_ON + half2 tiledUvGrad = half2(uvRect.x / _MainTex_ST.x, uvRect.y / _MainTex_ST.y); + #if GRADIENT2COL_ON + _GradTopRightCol = _GradTopLeftCol; + _GradBotRightCol = _GradBotLeftCol; + #endif + #if RADIALGRADIENT_ON + half radialDist = 1 - length(tiledUvGrad - half2(0.5, 0.5)); + radialDist *= (_MainTex_TexelSize.w / _MainTex_TexelSize.z); + radialDist = saturate(_GradBoostX * radialDist); + half4 gradientResult = lerp(_GradTopLeftCol, _GradBotLeftCol, radialDist); + #else + half gradXLerpFactor = saturate(pow(tiledUvGrad.x, _GradBoostX)); + half4 gradientResult = lerp(lerp(_GradBotLeftCol, _GradBotRightCol, gradXLerpFactor), + lerp(_GradTopLeftCol, _GradTopRightCol, gradXLerpFactor), saturate(pow(tiledUvGrad.y, _GradBoostY))); + #endif + gradientResult = lerp(col, gradientResult, _GradBlend); + col.rgb = gradientResult.rgb * col.a; + col.a *= gradientResult.a; + #endif + + #if CONTRAST_ON + col.rgb = (col.rgb - float3(0.5, 0.5, 0.5)) * _Contrast + float3(0.5, 0.5, 0.5); + col.rgb += _Brightness; + #endif + + #if COLORSWAP_ON + luminance = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b; + half4 swapMask = tex2D(_ColorSwapTex, i.uv); + swapMask.rgb *= swapMask.a; + half3 redSwap = _ColorSwapRed * swapMask.r * saturate(luminance + _ColorSwapRedLuminosity); + half3 greenSwap = _ColorSwapGreen * swapMask.g * saturate(luminance + _ColorSwapGreenLuminosity); + half3 blueSwap = _ColorSwapBlue * swapMask.b * saturate(luminance + _ColorSwapBlueLuminosity); + swapMask.rgb = col.rgb * saturate(1 - swapMask.r - swapMask.g - swapMask.b); + col.rgb = lerp(col.rgb, swapMask.rgb + redSwap + greenSwap + blueSwap, _ColorSwapBlend); + #endif + + #if COLORRAMP_ON && !COLORRAMPOUTLINE_ON + luminance = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b; + luminance = saturate(luminance + _ColorRampLuminosity); + #if GRADIENTCOLORRAMP_ON + col.rgb = lerp(col.rgb, tex2D(_ColorRampTexGradient, half2(luminance, 0)).rgb, _ColorRampBlend); + #else + col.rgb = lerp(col.rgb, tex2D(_ColorRampTex, half2(luminance, 0)).rgb, _ColorRampBlend); + #endif + #endif + + #if CHANGECOLOR_ON + float3 currChangeColor = saturate(col.rgb); + luminance = 0.3 * currChangeColor.r + 0.59 * currChangeColor.g + 0.11 * currChangeColor.b; + luminance = saturate(luminance + _ColorChangeLuminosity); + half3 dif = abs(currChangeColor - _ColorChangeTarget.rgb); + col.rgb = lerp(col.rgb, half3(luminance, luminance, luminance) * _ColorChangeNewCol.rgb, + max(sign(1 - saturate(dif.x + dif.y + dif.z) - _ColorChangeTolerance), 0.0)); + #if CHANGECOLOR2_ON + dif = abs(currChangeColor - _ColorChangeTarget2.rgb); + col.rgb = lerp(col.rgb, half3(luminance, luminance, luminance) * _ColorChangeNewCol2.rgb, + max(sign(1 - saturate(dif.x + dif.y + dif.z) - _ColorChangeTolerance2), 0.0)); + #endif + #if CHANGECOLOR3_ON + dif = abs(currChangeColor - _ColorChangeTarget3.rgb); + col.rgb = lerp(col.rgb, half3(luminance, luminance, luminance) * _ColorChangeNewCol3.rgb, + max(sign(1 - saturate(dif.x + dif.y + dif.z) - _ColorChangeTolerance3), 0.0)); + #endif + #endif + + #if POSTERIZE_ON && !POSTERIZEOUTLINE_ON + col.rgb = pow(col.rgb, _PosterizeGamma) * _PosterizeNumColors; + col.rgb = floor(col.rgb) / _PosterizeNumColors; + col.rgb = pow(col.rgb, 1.0 / _PosterizeGamma); + #endif + + #if HSV_ON + half3 resultHsv = half3(col.rgb); + half cosHsv = _HsvBright * _HsvSaturation * cos(_HsvShift * 3.14159265 / 180); + half sinHsv = _HsvBright * _HsvSaturation * sin(_HsvShift * 3.14159265 / 180); + resultHsv.x = (.299 * _HsvBright + .701 * cosHsv + .168 * sinHsv) * col.x + + (.587 * _HsvBright - .587 * cosHsv + .330 * sinHsv) * col.y + + (.114 * _HsvBright - .114 * cosHsv - .497 * sinHsv) * col.z; + resultHsv.y = (.299 * _HsvBright - .299 * cosHsv - .328 * sinHsv) *col.x + + (.587 * _HsvBright + .413 * cosHsv + .035 * sinHsv) * col.y + + (.114 * _HsvBright - .114 * cosHsv + .292 * sinHsv) * col.z; + resultHsv.z = (.299 * _HsvBright - .3 * cosHsv + 1.25 * sinHsv) * col.x + + (.587 * _HsvBright - .588 * cosHsv - 1.05 * sinHsv) * col.y + + (.114 * _HsvBright + .886 * cosHsv - .203 * sinHsv) * col.z; + col.rgb = resultHsv; + #endif + + #if OVERLAY_ON + half2 overlayUvs = i.uv; + overlayUvs.x += ((_Time.y + randomSeed) * _OverlayTextureScrollXSpeed) % 1; + overlayUvs.y += ((_Time.y + randomSeed) * _OverlayTextureScrollYSpeed) % 1; + half4 overlayCol = tex2D(_OverlayTex, TRANSFORM_TEX(overlayUvs, _OverlayTex)); + overlayCol.rgb *= _OverlayColor.rgb * _OverlayGlow; + #if !OVERLAYMULT_ON + overlayCol.rgb *= overlayCol.a * _OverlayColor.rgb * _OverlayColor.a * _OverlayBlend; + col.rgb += overlayCol.rgb; + #else + overlayCol.a *= _OverlayColor.a; + col = lerp(col, col * overlayCol, _OverlayBlend); + #endif + #endif + + //OUTLINE------------------------------------------------------------- + #if OUTBASE_ON + #if OUTBASEPIXELPERF_ON + half2 destUv = half2(_OutlinePixelWidth * _MainTex_TexelSize.x, _OutlinePixelWidth * _MainTex_TexelSize.y); + #else + half2 destUv = half2(_OutlineWidth * _MainTex_TexelSize.x * 200, _OutlineWidth * _MainTex_TexelSize.y * 200); + #endif + + #if OUTDIST_ON + i.uvOutDistTex.x += ((_Time.x + randomSeed) * _OutlineDistortTexXSpeed) % 1; + i.uvOutDistTex.y += ((_Time.x + randomSeed) * _OutlineDistortTexYSpeed) % 1; + #if ATLAS_ON + i.uvOutDistTex = half2((i.uvOutDistTex.x - _MinXUV) / (_MaxXUV - _MinXUV), (i.uvOutDistTex.y - _MinYUV) / (_MaxYUV - _MinYUV)); + #endif + half outDistortAmnt = (tex2D(_OutlineDistortTex, i.uvOutDistTex).r - 0.5) * 0.2 * _OutlineDistortAmount; + destUv.x += outDistortAmnt; + destUv.y += outDistortAmnt; + #endif + + half spriteLeft = tex2D(_MainTex, i.uv + half2(destUv.x, 0)).a; + half spriteRight = tex2D(_MainTex, i.uv - half2(destUv.x, 0)).a; + half spriteBottom = tex2D(_MainTex, i.uv + half2(0, destUv.y)).a; + half spriteTop = tex2D(_MainTex, i.uv - half2(0, destUv.y)).a; + half result = spriteLeft + spriteRight + spriteBottom + spriteTop; + + #if OUTBASE8DIR_ON + half spriteTopLeft = tex2D(_MainTex, i.uv + half2(destUv.x, destUv.y)).a; + half spriteTopRight = tex2D(_MainTex, i.uv + half2(-destUv.x, destUv.y)).a; + half spriteBotLeft = tex2D(_MainTex, i.uv + half2(destUv.x, -destUv.y)).a; + half spriteBotRight = tex2D(_MainTex, i.uv + half2(-destUv.x, -destUv.y)).a; + result = result + spriteTopLeft + spriteTopRight + spriteBotLeft + spriteBotRight; + #endif + + result = step(0.05, saturate(result)); + + #if OUTTEX_ON + half angle = (_Time.x + randomSeed) * _OutlineTexRotationSpeed; + half2x2 rot = half2x2(cos(angle), -sin(angle), sin(angle), cos(angle)); + + half2 uv = i.uvOutTex - 0.5; + uv = mul(rot, uv); + uv += 0.5; + + uv.x += ((_Time.x + randomSeed) * _OutlineTexXSpeed) % 1; + uv.y += ((_Time.x + randomSeed) * _OutlineTexYSpeed) % 1; + + i.uvOutTex = uv; + #if ATLAS_ON + i.uvOutTex = half2((i.uvOutTex.x - _MinXUV) / (_MaxXUV - _MinXUV), (i.uvOutTex.y - _MinYUV) / (_MaxYUV - _MinYUV)); + #endif + half4 tempOutColor = tex2D(_OutlineTex, i.uvOutTex); + tempOutColor *= _OutlineColor; + _OutlineColor = tempOutColor; + #endif + + result *= (1 - originalAlpha) * _OutlineAlpha; + + half4 outline = _OutlineColor * i.color.a; + outline.rgb *= _OutlineGlow; + outline.a = result; + #if ONLYOUTLINE_ON + col = outline; + #else + col = lerp(col, outline, result); + #endif + #endif + //----------------------------------------------------------------------------- + + #if FADE_ON + half2 tiledUvFade1= TRANSFORM_TEX(i.uv, _FadeTex); + half2 tiledUvFade2 = TRANSFORM_TEX(i.uv, _FadeBurnTex); + #if ATLAS_ON + tiledUvFade1 = half2((tiledUvFade1.x - _MinXUV) / (_MaxXUV - _MinXUV), (tiledUvFade1.y - _MinYUV) / (_MaxYUV - _MinYUV)); + tiledUvFade2 = half2((tiledUvFade2.x - _MinXUV) / (_MaxXUV - _MinXUV), (tiledUvFade2.y - _MinYUV) / (_MaxYUV - _MinYUV)); + #endif + half fadeTemp = tex2D(_FadeTex, tiledUvFade1).r; + half fade = smoothstep(_FadeAmount, _FadeAmount + _FadeBurnTransition, fadeTemp); + half fadeBurn = saturate(smoothstep(_FadeAmount - _FadeBurnWidth, _FadeAmount - _FadeBurnWidth + 0.1, fadeTemp) * _FadeAmount); + col.a *= fade; + _FadeBurnColor.rgb *= _FadeBurnGlow; + col += fadeBurn * tex2D(_FadeBurnTex, tiledUvFade2) * _FadeBurnColor * originalAlpha * (1 - col.a); + #endif + + #if SHADOW_ON + half shadowA = tex2D(_MainTex, i.uv + half2(_ShadowX, _ShadowY)).a; + half preMultShadowMask = 1 - (saturate(shadowA - col.a) * (1 - col.a)); + col.rgb *= 1 - ((shadowA - col.a) * (1 - col.a)); + col.rgb += (_ShadowColor * shadowA) * (1 - col.a); + col.a = max(shadowA * _ShadowAlpha * i.color.a, col.a); + #endif + + #if GLOW_ON + half4 emission; + #if GLOWTEX_ON + emission = tex2D(_GlowTex, i.uv); + #else + emission = col; + #endif + col.rgb *= _GlowGlobal; + emission.rgb *= emission.a * col.a * _Glow * _GlowColor; + col.rgb += emission.rgb; + #endif + + #if COLORRAMP_ON && COLORRAMPOUTLINE_ON + luminance = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b; + luminance = saturate(luminance + _ColorRampLuminosity); + #if GRADIENTCOLORRAMP_ON + col.rgb = lerp(col.rgb, tex2D(_ColorRampTexGradient, half2(luminance, 0)).rgb, _ColorRampBlend); + #else + col.rgb = lerp(col.rgb, tex2D(_ColorRampTex, half2(luminance, 0)).rgb, _ColorRampBlend); + #endif + #endif + + #if GREYSCALE_ON && GREYSCALEOUTLINE_ON + luminance = 0.3 * col.r + 0.59 * col.g + 0.11 * col.b; + luminance = saturate(luminance + _GreyscaleLuminosity); + col.rgb = lerp(col.rgb, half3(luminance, luminance, luminance) * _GreyscaleTintColor, _GreyscaleBlend); + #endif + + #if POSTERIZE_ON && POSTERIZEOUTLINE_ON + col.rgb = pow(col.rgb, _PosterizeGamma) * _PosterizeNumColors; + col.rgb = floor(col.rgb) / _PosterizeNumColors; + col.rgb = pow(col.rgb, 1.0 / _PosterizeGamma); + #endif + + #if SHINE_ON + half2 uvShine = uvRect; + half cosAngle = cos(_ShineRotate); + half sinAngle = sin(_ShineRotate); + half2x2 rot = half2x2(cosAngle, -sinAngle, sinAngle, cosAngle); + uvShine -= half2(0.5, 0.5); + uvShine = mul(rot, uvShine); + uvShine += half2(0.5, 0.5); + half shineMask = tex2D(_ShineMask, i.uv).a; + half currentDistanceProjection = (uvShine.x + uvShine.y) / 2; + half whitePower = 1 - (abs(currentDistanceProjection - _ShineLocation) / _ShineWidth); + col.rgb += col.a * whitePower * _ShineGlow * max(sign(currentDistanceProjection - (_ShineLocation - _ShineWidth)), 0.0) + * max(sign((_ShineLocation + _ShineWidth) - currentDistanceProjection), 0.0) * _ShineColor * shineMask; + #endif + + #if HOLOGRAM_ON + half totalHologram = _HologramStripesAmount + _HologramUnmodAmount; + half hologramYCoord = ((uvRect.y + (((_Time.x + randomSeed) % 1) * _HologramStripesSpeed)) % totalHologram) / totalHologram; + hologramYCoord = abs(hologramYCoord); + half alpha = RemapFloat(saturate(hologramYCoord - (_HologramUnmodAmount/totalHologram)), 0.0, 1.0, _HologramMinAlpha, saturate(_HologramMaxAlpha)); + half hologramMask = max(sign((_HologramUnmodAmount/totalHologram) - hologramYCoord), 0.0); + half4 hologramResult = col; + hologramResult.a *= lerp(alpha, 1, hologramMask); + hologramResult.rgb *= max(1, _HologramMaxAlpha * max(sign(hologramYCoord - (_HologramUnmodAmount/totalHologram)), 0.0)); + hologramMask = 1 - step(0.01,hologramMask); + hologramResult.rgb += hologramMask * _HologramStripeColor * col.a; + col = lerp(col, hologramResult, _HologramBlend); + #endif + + #if FLICKER_ON + col.a *= saturate(col.a * step(frac(0.05 + (_Time.w + randomSeed) * _FlickerFreq), 1 - _FlickerPercent) + _FlickerAlpha); + #endif + + col.a *= _Alpha; + + #if UNITY_UI_CLIP_RECT + half2 clipMask = saturate((_ClipRect.zw - _ClipRect.xy - abs(i.mask.xy)) * i.mask.zw); + col.a *= clipMask.x * clipMask.y; + #endif + + #if UNITY_UI_ALPHACLIP + clip (col.a - 0.001); + #endif + + #if ALPHACUTOFF_ON + clip((1 - _AlphaCutoffValue) - (1 - col.a) - 0.01); + #endif + + #if ALPHAROUND_ON + col.a = step(_AlphaRoundThreshold, col.a); + #endif + + #if ALPHAOUTLINE_ON + half alphaOutlineRes = pow(1 - col.a, max(_AlphaOutlinePower, 0.0001)) * step(_AlphaOutlineMinAlpha, col.a) * _AlphaOutlineBlend; + col.rgb = lerp(col.rgb, _AlphaOutlineColor.rgb * _AlphaOutlineGlow, alphaOutlineRes); + col.a = lerp(col.a, 1, alphaOutlineRes > 1); + #endif + + col *= _Color; + + return col; + } + ENDCG + } + } + CustomEditor "AllIn1SpriteShaderUiMask2MaterialInspector" + //Fallback "Sprites/Default" //Remove fallback so that any shader error is obvious to the user +} \ No newline at end of file diff --git a/Assets/Plugins/AllIn1SpriteShader/Shaders/AllIn1SpriteShaderUiMask2.shader.meta b/Assets/Plugins/AllIn1SpriteShader/Shaders/AllIn1SpriteShaderUiMask2.shader.meta new file mode 100644 index 000000000..830932b18 --- /dev/null +++ b/Assets/Plugins/AllIn1SpriteShader/Shaders/AllIn1SpriteShaderUiMask2.shader.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: e320962886da01749b5c68627fde4db9 +ShaderImporter: + externalObjects: {} + defaultTextures: + - _MainTex: {instanceID: 0} + - _GlowTex: {instanceID: 0} + - _FadeTex: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} + - _FadeBurnTex: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} + - _OutlineTex: {fileID: 2800000, guid: 74087f6d03f233e4a8a142fa01f9e5cf, type: 3} + - _OutlineDistortTex: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, + type: 3} + - _ColorSwapTex: {instanceID: 0} + - _ColorRampTex: {fileID: 2800000, guid: 279657edc397ece4b8029c727adf6ddc, type: 3} + - _DistortTex: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} + - _ShineMask: {instanceID: 0} + - _ColorRampTexGradient: {instanceID: 0} + - _OverlayTex: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Animate UI Materials.meta b/Assets/Plugins/Animate UI Materials.meta new file mode 100644 index 000000000..7bdcdb07f --- /dev/null +++ b/Assets/Plugins/Animate UI Materials.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 625ba2096e714466b6d44ccb456bd731 +timeCreated: 1682058264 \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Assembly-AnimateUIMaterials.asmdef b/Assets/Plugins/Animate UI Materials/Assembly-AnimateUIMaterials.asmdef new file mode 100644 index 000000000..14690d3ac --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Assembly-AnimateUIMaterials.asmdef @@ -0,0 +1,3 @@ +{ + "name": "Assembly-GraphicMaterialOverride" +} diff --git a/Assets/Plugins/Animate UI Materials/Assembly-AnimateUIMaterials.asmdef.meta b/Assets/Plugins/Animate UI Materials/Assembly-AnimateUIMaterials.asmdef.meta new file mode 100644 index 000000000..1c322ea9b --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Assembly-AnimateUIMaterials.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 0e6c16ac130388f4493d7bf4eff725f1 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Assembly-AnimateUIMaterials.asmdef + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/BufferedMaterialModifier.cs b/Assets/Plugins/Animate UI Materials/BufferedMaterialModifier.cs new file mode 100644 index 000000000..a3c94395b --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/BufferedMaterialModifier.cs @@ -0,0 +1,131 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Implements IMaterialModifier while avoiding the creation of too many garbage materials + /// WARNING: will destroy the modified material if the source material changes shader or on its own destruction + /// + public abstract class BufferedMaterialModifier : MonoBehaviour, IMaterialModifier + { + private static readonly int Stencil = Shader.PropertyToID("_Stencil"); + + /// + /// Hold the last modified material, to be re-used if possible + /// + Material _bufferedMaterial; + + /// + /// Holds the base material used to create _bufferedMaterial + /// + Material _bufferedMaterialSource; + + /// + /// From IMaterialModifier + /// Receives a material to be modified before display, and returns a new material + /// Only called once per frame per Graphic if changed, as Graphic is well optimized + /// + /// + /// A new material object, or the reset previous return value if possible + public Material GetModifiedMaterial(Material baseMaterial) + { + // Return the base material if invalid or if this component is disabled + if (!enabled || baseMaterial == null) return baseMaterial; + + if (!_bufferedMaterial || _bufferedMaterial.shader != baseMaterial.shader || baseMaterial != _bufferedMaterialSource) + { + DestroyBuffer(); + + // Create a child material of the original + _bufferedMaterial = CreateNewMaterial(baseMaterial, "OVERRIDE"); + _bufferedMaterialSource = baseMaterial; + } + + _bufferedMaterial.CopyPropertiesFromMaterial(baseMaterial); + ModifyMaterial(_bufferedMaterial); + return _bufferedMaterial; + } + + private int? GetStencilId(Material baseMaterial) + { + if (baseMaterial == null) return null; + + // Check if material has stencil prop to avoid warning + if (!baseMaterial.HasInt(Stencil)) return null; + int id = baseMaterial.GetInt(Stencil); + return id > 0 ? id : null; + } + + /// + /// Create a new material variant of the base material. + /// Tries to set parent value from the source material for prettier editing. + /// Sets flags to avoid saving the material in assets. + /// Used for creating new buffered material or for the fake editor screen. + /// + /// IMaterialModifier argument + /// Suffix to append to the original material name + /// + private Material CreateNewMaterial(Material baseMaterial, string suffix) + { + Material realSource; + // Try to retrieve real base Material + if (TryGetComponent(out Graphic graphic)) + { + realSource = graphic.material ? graphic.material : Canvas.GetDefaultCanvasMaterial(); + } + else + { + Debug.LogWarning("No graphic found"); + realSource = baseMaterial; + } + + // Add mask info to the Material + if (GetStencilId(baseMaterial) is {} stencilId) + { + suffix = $"{suffix} MASKED {stencilId}"; + } + + Material modifiedMaterial = new (baseMaterial.shader) + { + // Set a new name, to warn about editor modifications + name = $"{realSource.name} {suffix}", + hideFlags = HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor, + }; + // Set parent if supported +#if UNITY_2022_1_OR_NEWER && UNITY_EDITOR + modifiedMaterial.parent = realSource; +#endif + return modifiedMaterial; + } + + void DestroyBuffer() + { + if (Application.isPlaying) Destroy(_bufferedMaterial); + else DestroyImmediate(_bufferedMaterial); + } + + /// + /// Child class implement this class, modifying directly the buffered material + /// + /// + protected abstract void ModifyMaterial(Material modifiedMaterial); + + /// + /// Destroy the buffered material + /// + void OnDestroy() + { + DestroyBuffer(); + } + + public Material GetEditorMaterial(Material baseMaterial) + { + // Create a child material of the original + Material modifiedMaterial = CreateNewMaterial(baseMaterial, "EDITOR"); + modifiedMaterial.CopyPropertiesFromMaterial(baseMaterial); + ModifyMaterial(modifiedMaterial); + return modifiedMaterial; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/BufferedMaterialModifier.cs.meta b/Assets/Plugins/Animate UI Materials/BufferedMaterialModifier.cs.meta new file mode 100644 index 000000000..fb7768df4 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/BufferedMaterialModifier.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 32c21f564129429aa7afa1c3fbb90d85 +timeCreated: 1699906395 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/BufferedMaterialModifier.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Docs.meta b/Assets/Plugins/Animate UI Materials/Docs.meta new file mode 100644 index 000000000..9d85455a5 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Docs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94c69a3c49225fd4e8fc7eb449623d14 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Animate UI Materials/Docs/Animate UI Materials - Readme.pdf b/Assets/Plugins/Animate UI Materials/Docs/Animate UI Materials - Readme.pdf new file mode 100644 index 000000000..3d4e07402 Binary files /dev/null and b/Assets/Plugins/Animate UI Materials/Docs/Animate UI Materials - Readme.pdf differ diff --git a/Assets/Plugins/Animate UI Materials/Docs/Animate UI Materials - Readme.pdf.meta b/Assets/Plugins/Animate UI Materials/Docs/Animate UI Materials - Readme.pdf.meta new file mode 100644 index 000000000..bcda6bbc4 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Docs/Animate UI Materials - Readme.pdf.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 91b66ac0a1f9e5f48a4a1ffaefef1a01 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Docs/Animate UI Materials - Readme.pdf + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Editor.meta b/Assets/Plugins/Animate UI Materials/Editor.meta new file mode 100644 index 000000000..2353ed998 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6f6208cdf31d456cbbfb65574612dae0 +timeCreated: 1681720611 \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/Assembly-AnimateUIMaterials-Editor.asmdef b/Assets/Plugins/Animate UI Materials/Editor/Assembly-AnimateUIMaterials-Editor.asmdef new file mode 100644 index 000000000..25a30b66f --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/Assembly-AnimateUIMaterials-Editor.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Assembly-AnimateGraphicMaterials-Editor", + "rootNamespace": "", + "references": [ + "GUID:0e6c16ac130388f4493d7bf4eff725f1" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/Assembly-AnimateUIMaterials-Editor.asmdef.meta b/Assets/Plugins/Animate UI Materials/Editor/Assembly-AnimateUIMaterials-Editor.asmdef.meta new file mode 100644 index 000000000..cc4aa3f26 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/Assembly-AnimateUIMaterials-Editor.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 4cc83c889fcb65645bc6aae95a9ff24e +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Editor/Assembly-AnimateUIMaterials-Editor.asmdef + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Editor/CustomMaterialEditor.cs b/Assets/Plugins/Animate UI Materials/Editor/CustomMaterialEditor.cs new file mode 100644 index 000000000..ca092d338 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/CustomMaterialEditor.cs @@ -0,0 +1,34 @@ +namespace UnityEditor +{ + /// + /// Broken implementation of MaterialEditor meant to be injected in a standard Editor + /// Hacky, but only way to get custom shader editors to work with this packages + /// + public class CustomMaterialEditor: MaterialEditor + { + public override void OnInspectorGUI() + { + // Commented lines are those removed from the base implementation + serializedObject.Update(); + // Remove most checks + // this.CheckSetup(); + // this.DetectShaderEditorNeedsUpdate(); + // this.isVisible && (UnityEngine.Object) this.m_Shader != (UnityEngine.Object) null && !this.HasMultipleMixedShaderValues() && this. + // Draw properties + if (PropertiesGUI()) + { + // Do not validate materials since we don't have access to their editor scripts + // foreach (Material target in this.targets) + // { + // if (this.m_CustomShaderGUI != null) + // this.m_CustomShaderGUI.ValidateMaterial(target); + // } + // + PropertiesChanged(); + } + // this.DetectTextureStackValidationIssues(); + } + + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/CustomMaterialEditor.cs.meta b/Assets/Plugins/Animate UI Materials/Editor/CustomMaterialEditor.cs.meta new file mode 100644 index 000000000..084e491bd --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/CustomMaterialEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 39cd41d8ca92456dbb37f87b7de14c4e +timeCreated: 1701269432 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Editor/CustomMaterialEditor.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Editor/GraphicMaterialOverrideEditor.cs b/Assets/Plugins/Animate UI Materials/Editor/GraphicMaterialOverrideEditor.cs new file mode 100644 index 000000000..e315520b3 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/GraphicMaterialOverrideEditor.cs @@ -0,0 +1,644 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using Plugins.Animate_UI_Materials.EditorExtensions; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; +using UnityEngine.UI; +using Object = UnityEngine.Object; + +namespace Plugins.Animate_UI_Materials.Editor +{ + using PropertyType = ShaderUtil.ShaderPropertyType; + + [CustomEditor(typeof(GraphicMaterialOverride), true)] + public class GraphicMaterialOverrideEditor : UnityEditor.Editor + { + /// + /// The scroll position in the modifiers ScrollView + /// Usually not needed, but good to have + /// + Vector2 _scrollPosition; + + /// + /// A fake material used to create an inspector + /// + Material _editorMaterial; + + Object[] _editorMaterialArray; + + /// + /// The editor of the fake material + /// + MaterialEditor _editorMaterialEditor; + + /// + /// Override the reset context menu to implement the reset function + /// Needed instead of "MonoBehavior.Reset" on GraphicMaterialOverride because we need to record an Undo + /// + [MenuItem("CONTEXT/GraphicMaterialOverride/Reset")] + static void ResetMaterialModifiers(MenuCommand b) + { + GraphicMaterialOverride materialOverride = (GraphicMaterialOverride)b.context; + if (!materialOverride) return; + + List modifiers = materialOverride.GetModifiers().ToList(); + + Object[] modifiersAsObjects = modifiers.Select(m => (Object)m).ToArray(); + Undo.RecordObjects(modifiersAsObjects, "Reset material modifiers"); + + foreach (IMaterialPropertyModifier modifier in modifiers) + { + modifier.ResetPropertyToDefault(); + PrefabUtility.RecordPrefabInstancePropertyModifications((Object)modifier); + } + } + + /// + /// Ask the Graphic component to reload the modified material + /// + [MenuItem("CONTEXT/GraphicMaterialOverride/Reload Source Material")] + static void ReloadSourceMaterial(MenuCommand b) + { + if (b.context is not GraphicMaterialOverride materialOverride) return; + materialOverride.SetMaterialDirty(); + EditorUtility.SetDirty(materialOverride); + } + + [MenuItem("CONTEXT/MonoBehaviour/Bake Material Variant", true)] + static bool BakeMaterialVariantValidator(MenuCommand b) + { + return b.context is IMaterialModifier; + } + + /// + /// Ask the Graphic component to reload the modified material + /// + [MenuItem("CONTEXT/MonoBehaviour/Bake Material Variant")] + static void BakeMaterialVariant(MenuCommand b) + { + if (b.context is not IMaterialModifier) return; + if (b.context is not Component materialModifier) return; + + if (materialModifier.TryGetComponent(out Graphic materialSource) == false) + { + Debug.LogWarning("Cannot find associated Graphic"); + return; + } + + Material original = materialSource.material; + Material modified = materialSource.materialForRendering; + + Material asset = new(modified); + + #if UNITY_2022_1_OR_NEWER && UNITY_EDITOR + asset.parent = original; + #endif + asset.hideFlags = HideFlags.None; + + string path = GetMaterialVariantPath(original); + + AssetDatabase.CreateAsset(asset, path); + EditorGUIUtility.PingObject(AssetDatabase.LoadAssetAtPath(path)); + } + + static string GetMaterialVariantPath(Material original) + { + string path = null; + string name = original ? original.name : "Material"; + + #if UNITY_2022_1_OR_NEWER && UNITY_EDITOR + { + + Material current = original; + while (path == null && current) + { + path = AssetDatabase.GetAssetPath(current); + current = current.parent; + } + } + #else + if (original != null) path = AssetDatabase.GetAssetPath(original); + #endif + path = Path.GetDirectoryName(path); + path ??= Application.dataPath; + + path += $"/{name} Override.asset"; + + return AssetDatabase.GenerateUniqueAssetPath(path); + } + + public override void OnInspectorGUI() + { + DrawDefaultInspector(); + + // Get the materialOverride component + GraphicMaterialOverride materialOverride = (GraphicMaterialOverride)target; + + if (materialOverride.GetComponent() == null) + EditorGUILayout.HelpBox( + "Cannot find any sibling UI element. Add a UI element to use this component", + MessageType.Warning); + else if (GetTargetMaterial() == null) + EditorGUILayout.HelpBox( + "Cannot find any material. Add a material to the UI element to use this component", + MessageType.Warning); + + Material baseMaterial = GetTargetMaterial(); + if (baseMaterial == null) return; + + if (!_editorMaterial) + { + _editorMaterial = materialOverride.GetEditorMaterial(GetTargetMaterial()); + _editorMaterialArray = new Object[] { _editorMaterial }; + } + + InternalEditorUtility.SetIsInspectorExpanded(_editorMaterial, true); + + if (!_editorMaterialEditor || _editorMaterialEditor.target != _editorMaterial) + _editorMaterialEditor = CreateEditor(_editorMaterial) as MaterialEditor; + + var properties = ShaderPropertyInfo.GetMaterialProperties(baseMaterial); + var names = properties.Select(p => p.name).ToList(); + + // Get the active modifiers + List modifiers = materialOverride + .GetModifiers(true) + .OrderBy(m => names.IndexOf(m.PropertyName)) + .ToList(); + + // Display the current modifier values + DisplayModifiers(modifiers); + // Use a popup to create new modifiers + + if (DisplayCreationPopup(modifiers, properties) is { } toCreate) + CreateNewModifier(materialOverride.transform, toCreate); + } + + /// + /// Display all added modifiers and their value + /// + /// + void DisplayModifiers(List modifiers) + { + EditorGUILayout.LabelField("Modifiers"); + + if (modifiers.Count == 0) + EditorGUILayout.HelpBox("Select a value from the dropdown to add a property modifier", MessageType.Info); + + using GUILayout.ScrollViewScope scrollViewScope = new(_scrollPosition); + using GUILayout.HorizontalScope horizontalScope = new(); + + ForEachParameterVertical(modifiers, DrawModifier); + } + + /// + /// Returns the heights of each modifiers as a list + /// + /// The modifiers to get the heights of + /// + List GetModifiersHeights(List modifiers) + { + Object[] targetMat = _editorMaterialArray; + + return modifiers.Select(m => m.PropertyName) + .Select(n => MaterialEditor.GetMaterialProperty(targetMat, n)) + .Select(_editorMaterialEditor.GetPropertyHeight) + .ToList(); + } + + /// + /// Begin a vertical group, and call a draw function on each modifier + /// + /// The modifiers to draw + /// The draw function for a modifier property + static void ForEachParameterVertical( + List modifiers, + Action action + ) + { + using EditorGUILayout.VerticalScope scope = new(); + foreach (IMaterialPropertyModifier modifier in modifiers) + { + using GUILayout.HorizontalScope hScope = new(); + action(modifier); + } + } + + void DrawModifier(IMaterialPropertyModifier modifier) + { + DrawModifierToggle(modifier); + DrawModifierKebabMenu(modifier); + DrawModifierValue(modifier); + } + + // The cached style of the kebab menu button + GUIStyle _kebabMenuStyle; + + /// + /// Draw a button that activate the context menu + /// + /// + void DrawModifierKebabMenu(IMaterialPropertyModifier modifier) + { + if (_kebabMenuStyle == null) + { + _kebabMenuStyle = new GUIStyle(GUI.skin.GetStyle("PaneOptions")); + // Force the height of the button + _kebabMenuStyle.fixedHeight = EditorGUIUtility.singleLineHeight; + _kebabMenuStyle.margin = new RectOffset(0, 0, 3, 0); + } + + if (GUILayout.Button("", _kebabMenuStyle)) DrawModifierContextMenu(modifier); + } + + /// + /// Draw a toggle to enable or disable the target modifier component + /// + /// The modifier component + void DrawModifierToggle(IMaterialPropertyModifier modifier) + { + GameObject targetObject = modifier.gameObject; + SerializedObject targetSO = new(targetObject); + SerializedProperty activeProp = targetSO.FindProperty("m_IsActive"); + EditorGUI.ChangeCheckScope scope = new(); + EditorGUILayout.PropertyField(activeProp, GUIContent.none, false, GUILayout.MaxWidth(16f)); + if (scope.changed) targetSO.ApplyModifiedProperties(); + } + + /// + /// Draw the value field from the property modifier + /// + /// The target IMaterialPropertyModifier + protected virtual void DrawModifierValue(IMaterialPropertyModifier modifier) + { + MonoBehaviour modifierComponent = (MonoBehaviour)modifier; + // Add change checks to the property field + EditorGUI.BeginChangeCheck(); + // Create a serialized object on the modifier, to display it properly + SerializedObject obj = new(modifierComponent); + // Get the serialized property + SerializedProperty property = obj.FindProperty("propertyValue"); + + try + { + EditorGUIUtility.fieldWidth = 64f; + DrawMaterialProperty(modifier, property); + EditorGUIUtility.fieldWidth = -1; + } + catch (ExitGUIException e) + { + throw; + } + // e is used for debugging purposes +#pragma warning disable CS0168 // Variable is declared but never used + catch (Exception e) +#pragma warning restore CS0168 // Variable is declared but never used + { + // Put breakpoint here + EditorGUIUtility.fieldWidth = -1; + DrawFallbackProperty(modifier, property); + } + + // If no change was applied, ignore storage + if (!EditorGUI.EndChangeCheck()) return; + // Set the serialized property from the current prop + // Record an undo + Undo.RecordObject(modifierComponent, $"Modified property override {modifier.PropertyName}"); + // If we are in a prefab, ensure unity knows about the modification + PrefabUtility.RecordPrefabInstancePropertyModifications(modifierComponent); + // Apply the modified property + obj.ApplyModifiedProperties(); + } + + void DrawFallbackProperty(IMaterialPropertyModifier modifier, SerializedProperty property) + { + GUI.backgroundColor = new Color(1, 0.5f, 0); + EditorGUILayout.PropertyField(property, new GUIContent(modifier.PropertyName)); + GUI.backgroundColor = Color.white; + } + + FieldInfo _materialPropertyFlagsField = + typeof(MaterialProperty).GetField("m_Flags", BindingFlags.NonPublic | BindingFlags.Instance); + + void DrawMaterialProperty( + IMaterialPropertyModifier modifier, + SerializedProperty property + ) + { + // Get the actual Shader Property + MaterialProperty materialProperty = MaterialEditor.GetMaterialProperty(_editorMaterialArray, modifier.PropertyName); + + MaterialProperty.PropFlags oldFlags = materialProperty.flags; + MaterialProperty.PropFlags flags = oldFlags; + + // Hide the scale offset in the texture property drawer + if (modifier is GraphicPropertyOverrideTexture or GraphicPropertyOverrideScaleAndOffset) + { + bool wantsScaleOffset = modifier is GraphicPropertyOverrideScaleAndOffset; + + flags &= ~MaterialProperty.PropFlags.NoScaleOffset; + + if (!wantsScaleOffset) + flags |= MaterialProperty.PropFlags.NoScaleOffset; + } + + flags &= ~MaterialProperty.PropFlags.PerRendererData; + + if (oldFlags != flags) + { + _materialPropertyFlagsField.SetValue(materialProperty, (int)flags); + } + + // Asset correct property type + SerializedMaterialPropertyUtility.AssertTypeEqual(property, materialProperty); + // Set the buffer shader property to our current value + SerializedMaterialPropertyUtility.CopyProperty(materialProperty, property); + // Get the height needed to render + float height = _editorMaterialEditor.GetPropertyHeight(materialProperty); + + // Get the control rect + Rect rect = EditorGUILayout.GetControlRect(true, height); + using EditorGUI.PropertyScope scope = new(rect, new GUIContent(modifier.DisplayName), property); + + // Set the animator colored backgrounds + if (GraphicMaterialOverrideHelper.OverridePropertyColor(materialProperty, (Object)modifier, out Color background)) + { + GUI.backgroundColor = background; + } + + using EditorGUI.ChangeCheckScope changes = new(); + // Draw the property using the hidden editor + _editorMaterialEditor.ShaderProperty(rect, materialProperty, scope.content, 0); + + // Reset the background color + GUI.backgroundColor = Color.white; + + if (changes.changed) + { + // Place the result in the SerializedProperty + SerializedMaterialPropertyUtility.CopyProperty(property, materialProperty); + } + } + + /// + /// Draw the context menu for one modifier + /// + /// + void DrawModifierContextMenu(IMaterialPropertyModifier modifier) + { + MonoBehaviour modifierComponent = (MonoBehaviour)modifier; + GenericMenu menu = new(); + menu.AddItem(new GUIContent("Select"), false, () => Selection.activeGameObject = modifierComponent.gameObject); + menu.AddItem(new GUIContent("Set Default"), false, () => ResetModifier(modifier)); + if (modifierComponent.isActiveAndEnabled) + menu.AddItem(new GUIContent("Disable"), false, () => ModifierSetActive(modifier, false)); + else + menu.AddItem(new GUIContent("Enable"), false, () => ModifierSetActive(modifier, true)); + + menu.AddItem(new GUIContent("Delete"), false, () => DeleteModifier(modifier)); + menu.ShowAsContext(); + } + + /// + /// Reset a modifier object to the default material value and record an undo + /// + /// + void ResetModifier(IMaterialPropertyModifier modifier) + { + Undo.RecordObject(modifier as Object, "Reset modifier component"); + + modifier.ResetPropertyToDefault(); + + PrefabUtility.RecordPrefabInstancePropertyModifications(modifier as Object); + } + + /// + /// Delete the GameObject of a modifier and record an Undo + /// + /// + void DeleteModifier(IMaterialPropertyModifier modifier) + { + Undo.DestroyObjectImmediate(modifier.gameObject); + } + + /// + /// Set the active state of a modifier and its GameObject + /// Records an undo + /// + /// + /// + void ModifierSetActive(IMaterialPropertyModifier modifier, bool isActive) + { + // Make sure any modifications are properly propagated to unity + Undo.RecordObjects( + new[] { modifier as Object, modifier.gameObject }, + "Toggled modifier component"); + // If enabling, set the component and GameObject as active + if (isActive) + { + modifier.enabled = true; + modifier.gameObject.SetActive(true); + } + // If disabling, disable the GameObject only + else + { + modifier.gameObject.SetActive(false); + } + + PrefabUtility.RecordPrefabInstancePropertyModifications(modifier as Object); + PrefabUtility.RecordPrefabInstancePropertyModifications(modifier.gameObject); + } + + /// + /// Try to draw a range field for a shader property + /// If the information cannot be found, draw a float property + /// + /// The material holding the shader property + /// The index of the shader property + /// The serialized property in the modifier + /// The label of the property + public static void DrawFloatPropertyAsRange( + Material material, + int propertyIndex, + SerializedProperty property, + GUIContent label + ) + { + if (!material || propertyIndex < 0) + { + EditorGUILayout.PropertyField(property); + return; + } + + Rect rect = GUILayoutUtility.GetRect( + EditorGUIUtility.fieldWidth, + EditorGUIUtility.labelWidth + EditorGUIUtility.fieldWidth + 110f, + 18f, + 18f); + + Shader shader = material.shader; + float min = ShaderUtil.GetRangeLimits(shader, propertyIndex, 1); + float max = ShaderUtil.GetRangeLimits(shader, propertyIndex, 2); + + using EditorGUI.PropertyScope scope = new(rect, label, property); + EditorGUI.BeginChangeCheck(); + float newValue = EditorGUI.Slider(rect, "⇔", property.floatValue, min, max); + // Only assign the value back if it was actually changed by the user. + // Otherwise a single value will be assigned to all objects when multi-object editing, + // even when the user didn't touch the control. + if (EditorGUI.EndChangeCheck()) + property.floatValue = newValue; + } + + /// + /// Draw a color field for a shader property, hdr if required + /// If the information cannot be found, draw a color property + /// + /// The material holding the shader property + /// The serialized property in the modifier + /// If the property should be drawn as HDR + /// The label of the property + public static void DrawColorPropertyAsHdr( + Material material, + SerializedProperty property, + bool isHdr, + GUIContent label + ) + { + if (!material) + { + EditorGUILayout.PropertyField(property); + return; + } + + property.colorValue = EditorGUILayout.ColorField(label, property.colorValue, true, true, isHdr); + } + + static readonly (string, string)[] LowerPropertyStrings = + { + ("_StencilComp", "UI Hidden Properties/StencilComp"), + ("_Stencil", "UI Hidden Properties/Stencil"), + ("_StencilOp", "UI Hidden Properties/StencilOp"), + ("_StencilWriteMask", "UI Hidden Properties/StencilWriteMask"), + ("_StencilReadMask", "UI Hidden Properties/StencilReadMask"), + ("_ColorMask", "UI Hidden Properties/ColorMask"), + ("_UseUIAlphaClip", "UI Hidden Properties/UseUIAlphaClip"), + }; + + static string GetPropertyName(ShaderPropertyInfo prop) + { + foreach (var (lower, upper) in LowerPropertyStrings) + { + if (prop.name == lower) return upper; + } + + return prop.name; + } + + struct PropertyEntry + { + public string Name; + public string DisplayName; + public Type ComponentType; + } + + /// + /// Display a dropdown to select a modifier + /// Filters out modifiers that are already added + /// + /// + PropertyEntry? DisplayCreationPopup(List modifiers, List properties) + { + // Create a set to filter out modifiers that are already added + HashSet namesAlreadyUsed = modifiers + .Select(p => p.DisplayName) + .ToHashSet(); + + List entries = new(); + + foreach (ShaderPropertyInfo info in properties) + { + if (!namesAlreadyUsed.Contains(info.name)) + { + entries.Add( + new PropertyEntry + { + Name = info.name, + DisplayName = GetPropertyName(info), + ComponentType = info.type switch + { + PropertyType.Color => typeof(GraphicPropertyOverrideColor), + PropertyType.Float => typeof(GraphicPropertyOverrideFloat), + PropertyType.Range => typeof(GraphicPropertyOverrideRange), + PropertyType.Vector => typeof(GraphicPropertyOverrideVector), + PropertyType.TexEnv => typeof(GraphicPropertyOverrideTexture), + _ => throw new ArgumentOutOfRangeException(), + }, + }); + } + + if (info.type == PropertyType.TexEnv) + { + string displayName = GetPropertyName(info) + " Scale Offset"; + if (!namesAlreadyUsed.Contains(displayName)) + { + entries.Add( + new PropertyEntry + { + Name = info.name, + DisplayName = displayName, + ComponentType = typeof(GraphicPropertyOverrideScaleAndOffset), + }); + } + } + } + + string[] propertyNames = entries.Select(e => e.DisplayName).ToArray(); + + int selectedIndex = EditorGUILayout.Popup(new GUIContent("Add Override"), -1, propertyNames); + + if (selectedIndex >= 0) return entries[selectedIndex]; + return null; + } + + /// + /// Create a new GraphicPropertyOverride in a new child GameObject + /// + /// The transform of the GraphicMaterialOverride + /// The property to override + /// thrown when ShaderPropertyType is invalid + void CreateNewModifier(Transform parent, PropertyEntry propertyInfo) + { + // Increment undo group + Undo.IncrementCurrentGroup(); + GameObject child = new($"{propertyInfo.DisplayName} Override"); + + Undo.RegisterCreatedObjectUndo(child, $"Added override GameObject"); + child.layer = parent.gameObject.layer; + Undo.SetTransformParent(child.transform, parent, false, "Moved override GameObject"); + + GraphicPropertyOverride propertyOverride = + Undo.AddComponent(child, propertyInfo.ComponentType) as GraphicPropertyOverride; + propertyOverride!.PropertyName = propertyInfo.Name; + propertyOverride.ResetPropertyToDefault(); + + Undo.RegisterCompleteObjectUndo(child, "Added override component"); + Undo.SetCurrentGroupName($"Override ${propertyInfo.DisplayName}"); + } + + /// + /// Try to get the material from the Graphic component + /// + /// + Material GetTargetMaterial() + { + GraphicMaterialOverride graphicMaterialOverride = (GraphicMaterialOverride)target; + + return graphicMaterialOverride.TryGetComponent(out Graphic graphic) ? graphic.material : null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/GraphicMaterialOverrideEditor.cs.meta b/Assets/Plugins/Animate UI Materials/Editor/GraphicMaterialOverrideEditor.cs.meta new file mode 100644 index 000000000..e652efbaa --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/GraphicMaterialOverrideEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 2ea82f5a694c494db5eb813e0232cd6d +timeCreated: 1682064216 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Editor/GraphicMaterialOverrideEditor.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideColorEditor.cs b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideColorEditor.cs new file mode 100644 index 000000000..a7672b20f --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideColorEditor.cs @@ -0,0 +1,33 @@ +using UnityEditor; +using UnityEngine; + +namespace Plugins.Animate_UI_Materials.Editor +{ + using PropertyType = ShaderUtil.ShaderPropertyType; + + /// + /// A special editor for Color properties + /// Retrieves the hdr flag from the property override + /// + [CustomEditor(typeof(GraphicPropertyOverrideColor), true)] + public class GraphicPropertyOverrideColorEditor : GraphicPropertyOverrideEditor + { + protected override void DrawValueProperty(SerializedProperty property) + { + // If in multi-edit mode, just display a color field + if (targets.Length > 1 || target is not GraphicPropertyOverrideColor propertyOverride) + { + base.DrawValueProperty(property); + return; + } + + Material material = GetTargetMaterial(); + + GraphicMaterialOverrideEditor.DrawColorPropertyAsHdr( + material, + property, + propertyOverride.isHDR, + new GUIContent("")); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideColorEditor.cs.meta b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideColorEditor.cs.meta new file mode 100644 index 000000000..63717617e --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideColorEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ccb1a192bc074b67b10eca77f5af23d7 +timeCreated: 1686516497 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideColorEditor.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideEditor.cs b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideEditor.cs new file mode 100644 index 000000000..a2e6ce9e0 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideEditor.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + +namespace Plugins.Animate_UI_Materials.Editor +{ + using PropertyType = ShaderUtil.ShaderPropertyType; + + [CustomEditor(typeof(GraphicPropertyOverride), true)] + [CanEditMultipleObjects] + public class GraphicPropertyOverrideEditor : UnityEditor.Editor + { + SerializedProperty _propertyName; + SerializedProperty _propertyValue; + + void OnEnable() + { + // Get the serializedProperty of the shader property name + _propertyName = serializedObject.FindProperty("propertyName"); + // Get the serializedProperty of the shader property propertyValue + _propertyValue = serializedObject.FindProperty("propertyValue"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + // Draw the script header + using (new EditorGUI.DisabledScope(true)) + EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Script")); + + // Start change check + using EditorGUI.ChangeCheckScope scope = new(); + + // If single target (not multi-editing) + if (targets.Length == 1) + { + // Draw a warning if the material cannot be found + if (!GetTargetMaterial()) + EditorGUILayout.HelpBox( + "The parent doesn't contain a GraphicMaterialOverride. Add one to continue", + MessageType.Error); + + string[] properties = GetPropertyNames().ToArray(); + // Draw a dropdown list of float properties in the material + EditorGUI.BeginChangeCheck(); + + int currentIndex = GetPropertyIndexDropdown(); + int index = EditorGUILayout.Popup("Property Name", currentIndex, properties); + if (EditorGUI.EndChangeCheck()) _propertyName.stringValue = properties[index]; + } + else + { + EditorGUILayout.LabelField("Cannot multi-edit property name"); + } + + DrawPropertiesExcluding(serializedObject, "m_Script", "propertyName", "propertyValue"); + + DrawValueProperty(_propertyValue); + + // If change happened, apply modified properties + if (scope.changed) serializedObject.ApplyModifiedProperties(); + } + + /// + /// Overridable method to draw the value property + /// Overriden by GraphicPropertyOverrideRange to display ranges + /// + protected virtual void DrawValueProperty(SerializedProperty property) + { + EditorGUILayout.PropertyField(property); + } + + /// + /// Try to get the material of the associated Graphic object + /// + /// The material being overriden or null + protected Material GetTargetMaterial() + { + GraphicPropertyOverride animated = (GraphicPropertyOverride)target; + + return animated.transform.parent.TryGetComponent(out Graphic graphic) ? graphic.material : null; + } + + /// + /// Get the property type from the target object + /// + /// + protected PropertyType GetPropertyType() + { + GraphicPropertyOverride animated = (GraphicPropertyOverride)target; + + return animated switch + { + GraphicPropertyOverrideColor => PropertyType.Color, + GraphicPropertyOverrideFloat => PropertyType.Float, + GraphicPropertyOverrideVector => PropertyType.Vector, + GraphicPropertyOverrideInt => PropertyType.Int, + GraphicPropertyOverrideRange => PropertyType.Range, + GraphicPropertyOverrideTexture => PropertyType.TexEnv, + GraphicPropertyOverrideScaleAndOffset => PropertyType.TexEnv, + _ when target != null => throw new Exception($"Unknown type {target.GetType()}"), + _ => throw new Exception($"Target is null"), + }; + } + + /// + /// Get the index inside the filtered dropdown + /// + /// The index, or -1 in case of invalid property + int GetPropertyIndexDropdown() + { + string propertyName = _propertyName.stringValue; + return GetPropertyNames() + .FindIndex(dropdownOptionName => dropdownOptionName == propertyName); + } + + /// + /// Get the index of the property in the shade + /// + /// The index of the property or -1 in vase of invalid property + protected int GetPropertyIndex() + { + Material material = GetTargetMaterial(); + string propertyName = _propertyName.stringValue; + return ShaderPropertyInfo.GetMaterialProperties(material) + .Find(p => p.name == propertyName) + ?.index ?? + -1; + } + + /// + /// Get all matching properties from the shader + /// + /// + List GetPropertyNames() + { + Material material = GetTargetMaterial(); + PropertyType type = GetPropertyType(); + + return ShaderPropertyInfo.GetMaterialProperties(material) + .Where(p => p.type == type) + .Select(p => p.name) + .ToList(); + } + + /// + /// Override the reset context menu to implement the reset function + /// Needed instead of "MonoBehavior.Reset" on GraphicMaterialOverride because Reset is called in other contexts + /// + [MenuItem("CONTEXT/GraphicPropertyOverride/Reset")] + static void ResetPropertyValue(MenuCommand b) + { + if (b.context is not GraphicPropertyOverride propertyOverride) return; + + Undo.RecordObject(propertyOverride, "Reset material override"); + propertyOverride.ResetPropertyToDefault(); + PrefabUtility.RecordPrefabInstancePropertyModifications(propertyOverride); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideEditor.cs.meta b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideEditor.cs.meta new file mode 100644 index 000000000..c87afc530 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a8d03d3fad4347d09e530cd5a4590835 +timeCreated: 1681915604 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideEditor.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideRangeEditor.cs b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideRangeEditor.cs new file mode 100644 index 000000000..e4fdc5172 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideRangeEditor.cs @@ -0,0 +1,34 @@ +using UnityEditor; +using UnityEngine; + +namespace Plugins.Animate_UI_Materials.Editor +{ + using PropertyType = ShaderUtil.ShaderPropertyType; + + /// + /// A special editor for Range properties + /// Retrieves the range min and max from the shader, and draws the slider field + /// In case of failure to retrieve, it will simply display a float property + /// + [CustomEditor(typeof(GraphicPropertyOverrideRange), true)] + public class GraphicPropertyOverrideRangeEditor : GraphicPropertyOverrideEditor + { + protected override void DrawValueProperty(SerializedProperty property) + { + // If in multi-edit mode, just display a float field + if (targets.Length > 1) + { + base.DrawValueProperty(property); + return; + } + + Material material = GetTargetMaterial(); + int propertyIndex = GetPropertyIndex(); + + GraphicMaterialOverrideEditor.DrawFloatPropertyAsRange(material, + propertyIndex, + property, + new GUIContent("")); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideRangeEditor.cs.meta b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideRangeEditor.cs.meta new file mode 100644 index 000000000..ec8ea0e6e --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideRangeEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c999cb1c916847bd8cc931d65f1b195f +timeCreated: 1682061875 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideRangeEditor.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Editor/SerializedMaterialPropertyUtility.cs b/Assets/Plugins/Animate UI Materials/Editor/SerializedMaterialPropertyUtility.cs new file mode 100644 index 000000000..4df5cbdad --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/SerializedMaterialPropertyUtility.cs @@ -0,0 +1,93 @@ +using System; +using UnityEditor; +using UnityEngine; + +namespace Plugins.Animate_UI_Materials.Editor +{ + public static class SerializedMaterialPropertyUtility + { + public static void AssertTypeEqual(SerializedProperty a, MaterialProperty b) + { + AssertTypeEqual(b, a); + } + + public static void AssertTypeEqual(MaterialProperty a, SerializedProperty b) + { + switch (a.type) + { + case MaterialProperty.PropType.Color when b.propertyType == SerializedPropertyType.Color: return; + case MaterialProperty.PropType.Float when b.propertyType == SerializedPropertyType.Float: return; + case MaterialProperty.PropType.Vector when b.propertyType == SerializedPropertyType.Vector4: return; + case MaterialProperty.PropType.Range when b.propertyType == SerializedPropertyType.Float: return; + case MaterialProperty.PropType.Int when b.propertyType == SerializedPropertyType.Integer: return; + case MaterialProperty.PropType.Texture when b.propertyType == SerializedPropertyType.ObjectReference: return; + case MaterialProperty.PropType.Texture when b.propertyType == SerializedPropertyType.Generic: return; + default: throw new Exception("Wrong Material Override Type"); + } + } + + public static void CopyProperty(SerializedProperty to, MaterialProperty from) + { + switch (from.type) + { + case MaterialProperty.PropType.Color: + to.colorValue = from.colorValue; + return; + case MaterialProperty.PropType.Float: + to.floatValue = from.floatValue; + return; + case MaterialProperty.PropType.Vector: + to.vector4Value = from.vectorValue; + return; + case MaterialProperty.PropType.Range: + to.floatValue = from.floatValue; + return; + case MaterialProperty.PropType.Int: + to.intValue = from.intValue; + return; + case MaterialProperty.PropType.Texture when to.propertyType == SerializedPropertyType.Generic: + to.FindPropertyRelative(nameof(TextureScaleOffset.ScaleOffset)).vector4Value = from.textureScaleAndOffset; + to.FindPropertyRelative(nameof(TextureScaleOffset.Texture)).objectReferenceValue = from.textureValue; + return; + case MaterialProperty.PropType.Texture when to.propertyType == SerializedPropertyType.ObjectReference: + to.objectReferenceValue = from.textureValue; + return; + default: + Debug.LogWarning($"WEIRD TYPES {to.type} {from.type}"); + return; + } + } + + public static void CopyProperty(MaterialProperty to, SerializedProperty from) + { + switch (to.type) + { + case MaterialProperty.PropType.Color: + to.colorValue = from.colorValue; + return; + case MaterialProperty.PropType.Float: + to.floatValue = from.floatValue; + return; + case MaterialProperty.PropType.Vector: + to.vectorValue = from.vector4Value; + return; + case MaterialProperty.PropType.Range: + to.floatValue = from.floatValue; + return; + case MaterialProperty.PropType.Int: + to.intValue = from.intValue; + return; + case MaterialProperty.PropType.Texture when from.propertyType == SerializedPropertyType.Generic: + to.textureScaleAndOffset = from.FindPropertyRelative(nameof(TextureScaleOffset.ScaleOffset)).vector4Value; + to.textureValue = from.FindPropertyRelative(nameof(TextureScaleOffset.Texture)).objectReferenceValue as Texture; + return; + case MaterialProperty.PropType.Texture when from.propertyType == SerializedPropertyType.ObjectReference: + to.textureValue = from.objectReferenceValue as Texture; + return; + default: + Debug.LogWarning("WEIRD TYPES"); + return; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/SerializedMaterialPropertyUtility.cs.meta b/Assets/Plugins/Animate UI Materials/Editor/SerializedMaterialPropertyUtility.cs.meta new file mode 100644 index 000000000..e0560ba7e --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/SerializedMaterialPropertyUtility.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c3a2b7d21ca74321a9fdd6f784784901 +timeCreated: 1701444411 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Editor/SerializedMaterialPropertyUtility.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Editor/ShaderPropertyInfo.cs b/Assets/Plugins/Animate UI Materials/Editor/ShaderPropertyInfo.cs new file mode 100644 index 000000000..96ca99390 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/ShaderPropertyInfo.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace Plugins.Animate_UI_Materials.Editor +{ + using PropertyType = ShaderUtil.ShaderPropertyType; + + internal class ShaderPropertyInfo + { + /// + /// The index of the property inside the shader + /// + public int index; + /// + /// The name of the property inside the shader + /// + public string name; + /// + /// The type of the property, as defined by ShaderUtil + /// + public PropertyType type; + + /// + /// Get all properties from a shader, with their name, index, and type + /// + /// The shader to get the properties from + /// Include properties marked as hidden and _MainTex + /// + public static List GetShaderProperties(Shader shader, bool allowHidden = false) + { + List properties = new List(); + int propertyCount = ShaderUtil.GetPropertyCount(shader); + + for (int i = 0; i < propertyCount; i++) + if (!ShaderUtil.IsShaderPropertyHidden(shader, i) || !allowHidden) + if (!ShaderUtil.IsShaderPropertyNonModifiableTexureProperty(shader, i) || allowHidden) + properties.Add(new ShaderPropertyInfo + { + index = i, + name = ShaderUtil.GetPropertyName(shader, i), + type = ShaderUtil.GetPropertyType(shader, i) + }); + + return properties; + } + + /// + /// Get all properties from a material, with their name, index, and type + /// + /// The material to get the properties from + /// Include properties marked as hidden and _MainTex + /// + public static List GetMaterialProperties(Material material, bool allowHidden = false) + { + if (!material) return new List(); + return GetShaderProperties(material.shader, allowHidden); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Editor/ShaderPropertyInfo.cs.meta b/Assets/Plugins/Animate UI Materials/Editor/ShaderPropertyInfo.cs.meta new file mode 100644 index 000000000..051d156bc --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Editor/ShaderPropertyInfo.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 36a87bf77f35458e8da8b3037e3b2321 +timeCreated: 1682088408 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Editor/ShaderPropertyInfo.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/EditorExtensions.meta b/Assets/Plugins/Animate UI Materials/EditorExtensions.meta new file mode 100644 index 000000000..4dda56b12 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/EditorExtensions.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d7ba558eff1e4d3189ce4b8dc9cd46cf +timeCreated: 1701272938 \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/EditorExtensions/AssemblyRef-EditorExtensions.asmref b/Assets/Plugins/Animate UI Materials/EditorExtensions/AssemblyRef-EditorExtensions.asmref new file mode 100644 index 000000000..38d992c4c --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/EditorExtensions/AssemblyRef-EditorExtensions.asmref @@ -0,0 +1,3 @@ +{ + "reference": "GUID:343deaaf83e0cee4ca978e7df0b80d21" +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/EditorExtensions/AssemblyRef-EditorExtensions.asmref.meta b/Assets/Plugins/Animate UI Materials/EditorExtensions/AssemblyRef-EditorExtensions.asmref.meta new file mode 100644 index 000000000..a1c85b4f6 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/EditorExtensions/AssemblyRef-EditorExtensions.asmref.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 3426bd6b92ad21241be6117321949a82 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/EditorExtensions/AssemblyRef-EditorExtensions.asmref + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/EditorExtensions/GraphicMaterialOverrideHelper.cs b/Assets/Plugins/Animate UI Materials/EditorExtensions/GraphicMaterialOverrideHelper.cs new file mode 100644 index 000000000..87b065e8b --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/EditorExtensions/GraphicMaterialOverrideHelper.cs @@ -0,0 +1,79 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace Plugins.Animate_UI_Materials.EditorExtensions +{ + public static class GraphicMaterialOverrideHelper + { + public static bool OverridePropertyColor( + MaterialProperty materialProp, + Object target, + out Color color) + { + List stringList = new(); + string str = "propertyValue"; + if (materialProp.type == MaterialProperty.PropType.Texture) + { + stringList.Add(str); + stringList.Add(str + "_ST.x"); + stringList.Add(str + "_ST.y"); + stringList.Add(str + "_ST.z"); + stringList.Add(str + "_ST.w"); + } + else if (materialProp.type == MaterialProperty.PropType.Color) + { + stringList.Add(str + ".r"); + stringList.Add(str + ".g"); + stringList.Add(str + ".b"); + stringList.Add(str + ".a"); + } + else if (materialProp.type == MaterialProperty.PropType.Vector) + { + stringList.Add(str + ".x"); + stringList.Add(str + ".y"); + stringList.Add(str + ".z"); + stringList.Add(str + ".w"); + } + else + { + stringList.Add(str); + } + + bool found = false; + foreach (string propName in stringList) + { + if (AnimationMode.IsPropertyAnimated(target, propName)) + { + found = true; + break; + } + } + + if (!found) + { + color = Color.white; + return false; + } + + if (AnimationMode.InAnimationRecording()) + { + color = AnimationMode.recordedPropertyColor; + return true; + } + + foreach (string propName in stringList) + { + if (AnimationMode.IsPropertyCandidate(target, propName)) + { + color = AnimationMode.candidatePropertyColor; + return true; + } + } + + color = AnimationMode.animatedPropertyColor; + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/EditorExtensions/GraphicMaterialOverrideHelper.cs.meta b/Assets/Plugins/Animate UI Materials/EditorExtensions/GraphicMaterialOverrideHelper.cs.meta new file mode 100644 index 000000000..de04683b9 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/EditorExtensions/GraphicMaterialOverrideHelper.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fe7b10245245441ba4ac6ff89dd23ab3 +timeCreated: 1701273095 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/EditorExtensions/GraphicMaterialOverrideHelper.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Examples.meta b/Assets/Plugins/Animate UI Materials/Examples.meta new file mode 100644 index 000000000..e26c8a25c --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc85c94df8771d44788e610e60a1958f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Animate UI Materials/Examples/Example Animation.anim b/Assets/Plugins/Animate UI Materials/Examples/Example Animation.anim new file mode 100644 index 000000000..f8212534c --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Example Animation.anim @@ -0,0 +1,1082 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Example Animation + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.95 + value: 1 + inSlope: 1.1713836 + outSlope: 1.1713836 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.6833333 + value: 0.9528302 + inSlope: -0.8115626 + outSlope: -0.8115626 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6666667 + value: 0 + inSlope: -0.7329463 + outSlope: -0.7329463 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.7 + value: 3.9215686 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -1.5791551 + outSlope: -1.5791551 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.r + path: _OverlayColor Override + classID: 114 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.95 + value: 1 + inSlope: -0.41666675 + outSlope: -0.41666675 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.6833333 + value: 0 + inSlope: -0.9336351 + outSlope: -0.9336351 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6666667 + value: 0.9529412 + inSlope: 0.3467041 + outSlope: 0.3467041 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.7 + value: 3.8588235 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -1.5538887 + outSlope: -1.5538887 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.g + path: _OverlayColor Override + classID: 114 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.95 + value: 1 + inSlope: -0.41666675 + outSlope: -0.41666675 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.6833333 + value: 0 + inSlope: -1.1621865 + outSlope: -1.1621865 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6666667 + value: 0.65582436 + inSlope: 0.23860547 + outSlope: 0.23860547 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.7 + value: 2.6509805 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -1.0675089 + outSlope: -1.0675089 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.b + path: _OverlayColor Override + classID: 114 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.204 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.71666664 + value: 0.792 + inSlope: 2.2742858 + outSlope: 2.2742858 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.8333334 + value: 2 + inSlope: 0.93857145 + outSlope: 0.93857145 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.4 + value: 1.834 + inSlope: -0.8704512 + outSlope: -0.8704512 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0.204 + inSlope: -0.430837 + outSlope: -0.430837 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue + path: _Scale Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.51666665 + value: 15 + inSlope: 236.3654 + outSlope: 236.3654 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.1166666 + value: 284 + inSlope: 191.75002 + outSlope: 191.75002 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.6 + value: 280 + inSlope: -478.75003 + outSlope: -478.75003 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6666667 + value: 30 + inSlope: -480.9122 + outSlope: -480.9122 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -11.92053 + outSlope: -11.92053 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue + path: _Rotation Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 6.1833334 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: _OverlayTex Override + classID: 1 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.55 + value: 0 + inSlope: 1.7647061 + outSlope: 1.7647061 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.2666667 + value: 1 + inSlope: 1.3593007 + outSlope: 1.3593007 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -0.34285712 + outSlope: -0.34285712 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.x + path: _Offset Override + classID: 114 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.4 + value: 0 + inSlope: 1.4285713 + outSlope: 1.4285713 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 4.35 + value: 1 + inSlope: 1.023166 + outSlope: 1.023166 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -0.5454545 + outSlope: -0.5454545 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.y + path: _Offset Override + classID: 114 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.z + path: _Offset Override + classID: 114 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.w + path: _Offset Override + classID: 114 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3} + - time: 2.6666667 + value: {fileID: 2800000, guid: f5588e963e393074a943ed2b8a86fb1a, type: 3} + - time: 6.1833334 + value: {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3} + attribute: propertyValue + path: _OverlayTex Override + classID: 114 + script: {fileID: 11500000, guid: e6f24b72ca8a4caabda35db3768eaf4f, type: 3} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 3899273273 + attribute: 1656131046 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3899273273 + attribute: 258697485 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3899273273 + attribute: 2130812290 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 2814422603 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3995746289 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 4280412178 + attribute: 2187551992 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 4280412178 + attribute: 4116993134 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 4240755812 + attribute: 2659956753 + script: {fileID: 11500000, guid: e6f24b72ca8a4caabda35db3768eaf4f, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 1 + - serializedVersion: 2 + path: 4240755812 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 4280412178 + attribute: 1819084244 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 4280412178 + attribute: 316438889 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: + - {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3} + - {fileID: 2800000, guid: f5588e963e393074a943ed2b8a86fb1a, type: 3} + - {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 6.2000003 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.95 + value: 1 + inSlope: 1.1713836 + outSlope: 1.1713836 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.6833333 + value: 0.9528302 + inSlope: -0.8115626 + outSlope: -0.8115626 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6666667 + value: 0 + inSlope: -0.7329463 + outSlope: -0.7329463 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.7 + value: 3.9215686 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -1.5791551 + outSlope: -1.5791551 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.r + path: _OverlayColor Override + classID: 114 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.95 + value: 1 + inSlope: -0.41666675 + outSlope: -0.41666675 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.6833333 + value: 0 + inSlope: -0.9336351 + outSlope: -0.9336351 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6666667 + value: 0.9529412 + inSlope: 0.3467041 + outSlope: 0.3467041 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.7 + value: 3.8588235 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -1.5538887 + outSlope: -1.5538887 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.g + path: _OverlayColor Override + classID: 114 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.95 + value: 1 + inSlope: -0.41666675 + outSlope: -0.41666675 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.6833333 + value: 0 + inSlope: -1.1621865 + outSlope: -1.1621865 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6666667 + value: 0.65582436 + inSlope: 0.23860547 + outSlope: 0.23860547 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.7 + value: 2.6509805 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -1.0675089 + outSlope: -1.0675089 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.b + path: _OverlayColor Override + classID: 114 + script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.204 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.71666664 + value: 0.792 + inSlope: 2.2742858 + outSlope: 2.2742858 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.8333334 + value: 2 + inSlope: 0.93857145 + outSlope: 0.93857145 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.4 + value: 1.834 + inSlope: -0.8704512 + outSlope: -0.8704512 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0.204 + inSlope: -0.430837 + outSlope: -0.430837 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue + path: _Scale Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.51666665 + value: 15 + inSlope: 236.3654 + outSlope: 236.3654 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.1166666 + value: 284 + inSlope: 191.75002 + outSlope: 191.75002 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.6 + value: 280 + inSlope: -478.75003 + outSlope: -478.75003 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.6666667 + value: 30 + inSlope: -480.9122 + outSlope: -480.9122 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -11.92053 + outSlope: -11.92053 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue + path: _Rotation Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 6.1833334 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: _OverlayTex Override + classID: 1 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.55 + value: 0 + inSlope: 1.7647061 + outSlope: 1.7647061 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 3.2666667 + value: 1 + inSlope: 1.3593007 + outSlope: 1.3593007 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -0.34285712 + outSlope: -0.34285712 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.x + path: _Offset Override + classID: 114 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 2.4 + value: 0 + inSlope: 1.4285713 + outSlope: 1.4285713 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 4.35 + value: 1 + inSlope: 1.023166 + outSlope: 1.023166 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.1833334 + value: 0 + inSlope: -0.5454545 + outSlope: -0.5454545 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.y + path: _Offset Override + classID: 114 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.z + path: _Offset Override + classID: 114 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue.w + path: _Offset Override + classID: 114 + script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Plugins/Animate UI Materials/Examples/Example Animation.anim.meta b/Assets/Plugins/Animate UI Materials/Examples/Example Animation.anim.meta new file mode 100644 index 000000000..c3f33e560 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Example Animation.anim.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 196814563dea2d7469ff1de55d0d3815 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Examples/Example Animation.anim + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Examples/Example Scene.unity b/Assets/Plugins/Animate UI Materials/Examples/Example Scene.unity new file mode 100644 index 000000000..58a999055 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Example Scene.unity @@ -0,0 +1,1012 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.12731749, g: 0.13414757, b: 0.1210787, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &8282887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8282888} + - component: {fileID: 8282892} + - component: {fileID: 8282891} + - component: {fileID: 8282889} + - component: {fileID: 8282893} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8282888 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8282887} + m_LocalRotation: {x: 0, y: 0, z: -0.38268343, w: 0.92387956} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1008659955} + - {fileID: 1040448590} + - {fileID: 1236616673} + - {fileID: 1366672478} + - {fileID: 668252535} + - {fileID: 1823670285} + - {fileID: 200520519} + - {fileID: 174496130} + m_Father: {fileID: 1800647619} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -45} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!95 &8282889 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8282887} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: ba1af5f887a74c44190010c05f6748ee, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &8282891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8282887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: da1cb4f2f1551d948a65d84276aef03d, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &8282892 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8282887} + m_CullTransparentMesh: 1 +--- !u!114 &8282893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8282887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ec7c531f67844491ae84a4f3d1575d01, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &174496129 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 174496130} + - component: {fileID: 174496131} + m_Layer: 5 + m_Name: _OverlayTex Scale Offset Override + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &174496130 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 174496129} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8282888} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &174496131 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 174496129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8ebb8aba46242f88d3296cc8d7984c9, type: 3} + m_Name: + m_EditorClassIdentifier: + propertyName: _OverlayTex + propertyValue: + Texture: {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3} + ScaleOffset: {x: 2.56, y: 0.81, z: 2.53, w: 1.77} +--- !u!1 &200520518 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 200520519} + - component: {fileID: 200520520} + m_Layer: 5 + m_Name: _MainTex Override + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &200520519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200520518} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8282888} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &200520520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200520518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e6f24b72ca8a4caabda35db3768eaf4f, type: 3} + m_Name: + m_EditorClassIdentifier: + propertyName: _MainTex + propertyValue: {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3} +--- !u!1 &668252534 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 668252535} + - component: {fileID: 668252536} + m_Layer: 0 + m_Name: _OverlayTex Override + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &668252535 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 668252534} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -361, y: -270, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8282888} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &668252536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 668252534} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e6f24b72ca8a4caabda35db3768eaf4f, type: 3} + m_Name: + m_EditorClassIdentifier: + propertyName: _OverlayTex + propertyValue: {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3} +--- !u!1 &1008659954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1008659955} + - component: {fileID: 1008659956} + m_Layer: 0 + m_Name: _Color Override + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1008659955 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1008659954} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -361, y: -270, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8282888} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1008659956 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1008659954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + m_Name: + m_EditorClassIdentifier: + propertyName: _Color + propertyValue: {r: 1, g: 1, b: 1, a: 1} + isHDR: 0 +--- !u!1 &1010993211 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1010993215} + - component: {fileID: 1010993214} + - component: {fileID: 1010993213} + - component: {fileID: 1010993212} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1010993212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010993211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1010993213 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010993211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1010993214 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010993211} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1010993215 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1010993211} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1171812838} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1040448589 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1040448590} + - component: {fileID: 1040448591} + m_Layer: 0 + m_Name: _OverlayColor Override + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1040448590 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1040448589} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -361, y: -270, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8282888} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1040448591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1040448589} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0769e07e9d844582aed9c22013f56c3b, type: 3} + m_Name: + m_EditorClassIdentifier: + propertyName: _OverlayColor + propertyValue: {r: 1, g: 1, b: 1, a: 1} + isHDR: 1 +--- !u!1 &1171812837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1171812838} + - component: {fileID: 1171812839} + m_Layer: 5 + m_Name: RectMask2D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1171812838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171812837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1800647619} + m_Father: {fileID: 1010993215} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 300, y: 400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1171812839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171812837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &1236616672 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1236616673} + - component: {fileID: 1236616674} + m_Layer: 0 + m_Name: _Scale Override + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1236616673 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236616672} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -361, y: -270, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8282888} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1236616674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236616672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + m_Name: + m_EditorClassIdentifier: + propertyName: _Scale + propertyValue: 1 +--- !u!1 &1366672477 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1366672478} + - component: {fileID: 1366672479} + m_Layer: 0 + m_Name: _Rotation Override + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1366672478 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1366672477} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -361, y: -270, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8282888} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1366672479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1366672477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + m_Name: + m_EditorClassIdentifier: + propertyName: _Rotation + propertyValue: 0 +--- !u!1 &1399928180 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1399928183} + - component: {fileID: 1399928182} + - component: {fileID: 1399928181} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1399928181 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399928180} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1399928182 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399928180} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1399928183 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1399928180} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1555820097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1555820100} + - component: {fileID: 1555820099} + - component: {fileID: 1555820098} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1555820098 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555820097} + m_Enabled: 1 +--- !u!20 &1555820099 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555820097} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1555820100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555820097} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1800647618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1800647619} + - component: {fileID: 1800647621} + - component: {fileID: 1800647620} + - component: {fileID: 1800647622} + m_Layer: 5 + m_Name: Mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1800647619 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800647618} + m_LocalRotation: {x: -0, y: -0, z: 0.38268343, w: 0.92387956} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8282888} + m_Father: {fileID: 1171812838} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 45} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1800647620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800647618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1800647621 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800647618} + m_CullTransparentMesh: 1 +--- !u!114 &1800647622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800647618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!1 &1823670284 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1823670285} + - component: {fileID: 1823670286} + m_Layer: 0 + m_Name: _Offset Override + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1823670285 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823670284} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8282888} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1823670286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823670284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7de2cc36a6a241da9a1302efa1f3cf46, type: 3} + m_Name: + m_EditorClassIdentifier: + propertyName: _Offset + propertyValue: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Plugins/Animate UI Materials/Examples/Example Scene.unity.meta b/Assets/Plugins/Animate UI Materials/Examples/Example Scene.unity.meta new file mode 100644 index 000000000..c292b10dd --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Example Scene.unity.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 404da49678522824d82c5911593942ce +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Examples/Example Scene.unity + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Examples/ExampleUIShader.shader b/Assets/Plugins/Animate UI Materials/Examples/ExampleUIShader.shader new file mode 100644 index 000000000..834dde27e --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/ExampleUIShader.shader @@ -0,0 +1,144 @@ +// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) +// Modified with rights for use in demonstration by Lou Garczynski + +Shader "Animate UI Material/Example" +{ + Properties + { + [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + + _OverlayTex ("Overlay", 2D) = "white" {} + [HDR]_OverlayColor ("Overlay Color", Color) = (1, 1, 1, 1) + _Scale ("Scale", Range(0, 2)) = 1 + _Rotation ("Rotation", Range(0, 360)) = 0 + _Offset ("Offset", Vector) = (0, 0, 0, 0) + + _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 + } + + 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 + { + Name "Default" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + + #pragma multi_compile_local _ UNITY_UI_CLIP_RECT + #pragma multi_compile_local _ UNITY_UI_ALPHACLIP + + 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; + UNITY_VERTEX_OUTPUT_STEREO + }; + + sampler2D _MainTex; + fixed4 _Color; + fixed4 _TextureSampleAdd; + float4 _ClipRect; + float4 _MainTex_ST; + + sampler2D _OverlayTex; + float4 _OverlayColor; + float _Scale; + float _Rotation; + float2 _Offset; + + v2f vert(appdata_t v) + { + v2f OUT; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + OUT.worldPosition = v.vertex; + OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + + OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + + OUT.color = v.color * _Color; + return OUT; + } + + fixed4 frag(v2f IN) : SV_Target + { + half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; + + // Calculate the overlay texture coordinates and sample it + float2 centeredUV = (IN.texcoord - 0.5)*2; + float2 overlayUV = centeredUV * _Scale; + float rad = _Rotation / 360 * 2 * UNITY_PI; + float2 rotatedUV = float2( + overlayUV.x * cos(rad) - overlayUV.y * sin(rad), + overlayUV.x * sin(rad) + overlayUV.y * cos(rad) + ); + float2 normalizedUV = rotatedUV / 2 + 0.5; + float2 offsetUV = normalizedUV + float2(_Offset.x, _Offset.y); + fixed4 overlay = tex2D(_OverlayTex, offsetUV) * _OverlayColor; + + // Blend the background and overlay textures + color = lerp(color, overlay, overlay.a); + + #ifdef UNITY_UI_CLIP_RECT + color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); + #endif + + #ifdef UNITY_UI_ALPHACLIP + clip (color.a - 0.001); + #endif + + return color; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/Examples/ExampleUIShader.shader.meta b/Assets/Plugins/Animate UI Materials/Examples/ExampleUIShader.shader.meta new file mode 100644 index 000000000..c27e169ce --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/ExampleUIShader.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d8010de858794e33a27636c6183ce4d2 +timeCreated: 1682164300 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Examples/ExampleUIShader.shader + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Examples/Image.controller b/Assets/Plugins/Animate UI Materials/Examples/Image.controller new file mode 100644 index 000000000..12177d9c7 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Image.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-7894766971529659986 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New Animation + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 196814563dea2d7469ff1de55d0d3815, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Image + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 5797805570552003858} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1107 &5797805570552003858 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -7894766971529659986} + m_Position: {x: 260, y: 120, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -7894766971529659986} diff --git a/Assets/Plugins/Animate UI Materials/Examples/Image.controller.meta b/Assets/Plugins/Animate UI Materials/Examples/Image.controller.meta new file mode 100644 index 000000000..9ee6f6200 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Image.controller.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: ba1af5f887a74c44190010c05f6748ee +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Examples/Image.controller + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Examples/Texture 1.png b/Assets/Plugins/Animate UI Materials/Examples/Texture 1.png new file mode 100644 index 000000000..b342e771e --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Texture 1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7325cd7edea778edd6934099af9f9ec75004e253b7983b1c2609e352feb8c4f8 +size 1423 diff --git a/Assets/Plugins/Animate UI Materials/Examples/Texture 1.png.meta b/Assets/Plugins/Animate UI Materials/Examples/Texture 1.png.meta new file mode 100644 index 000000000..b2b5c07a3 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Texture 1.png.meta @@ -0,0 +1,131 @@ +fileFormatVersion: 2 +guid: 212f10d282ba58242b61e8ad04af89d1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + 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: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Examples/Texture 1.png + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Examples/Texture 2.png b/Assets/Plugins/Animate UI Materials/Examples/Texture 2.png new file mode 100644 index 000000000..7d3770e96 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Texture 2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2060e8b159fdc26d8d635939d9ab931430148b66da8a67e4775b406ade96ce1 +size 1652 diff --git a/Assets/Plugins/Animate UI Materials/Examples/Texture 2.png.meta b/Assets/Plugins/Animate UI Materials/Examples/Texture 2.png.meta new file mode 100644 index 000000000..80d5edfdf --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/Texture 2.png.meta @@ -0,0 +1,131 @@ +fileFormatVersion: 2 +guid: f5588e963e393074a943ed2b8a86fb1a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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: 0 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + 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: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Examples/Texture 2.png + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/Examples/UI Overlay.mat b/Assets/Plugins/Animate UI Materials/Examples/UI Overlay.mat new file mode 100644 index 000000000..89c798e65 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/UI Overlay.mat @@ -0,0 +1,50 @@ +%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: UI Overlay + m_Shader: {fileID: 4800000, guid: d8010de858794e33a27636c6183ce4d2, 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} + - _OverlayTex: + m_Texture: {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _ColorMask: 15 + - _OffsetX: 0 + - _OffsetY: 0 + - _Rotation: 0 + - _Scale: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _UseUIAlphaClip: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _OverlayColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Plugins/Animate UI Materials/Examples/UI Overlay.mat.meta b/Assets/Plugins/Animate UI Materials/Examples/UI Overlay.mat.meta new file mode 100644 index 000000000..df4410319 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/Examples/UI Overlay.mat.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: da1cb4f2f1551d948a65d84276aef03d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/Examples/UI Overlay.mat + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicMaterialOverride.cs b/Assets/Plugins/Animate UI Materials/GraphicMaterialOverride.cs new file mode 100644 index 000000000..af1960a09 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicMaterialOverride.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace Plugins.Animate_UI_Materials +{ + [ExecuteAlways] + [AddComponentMenu("UI/Animate UI Material/GraphicMaterialOverride")] + public class GraphicMaterialOverride : BufferedMaterialModifier + { + /// + /// Recreate the modified material using each active IMaterialPropertyModifier on this GameObject or its children + /// + public void SetMaterialDirty() + { + if (TryGetComponent(out Graphic graphic)) + { + graphic.SetMaterialDirty(); + } + } + + /// + /// A buffer list to accelerate GetComponents requests + /// + [NonSerialized] List _modifiers; + + /// + /// Retrieves all enabled IMaterialPropertyModifiers belonging to direct children + /// + /// An iterator over all enabled modifiers, avoid storing this value + public IEnumerable GetModifiers(bool includeInactive = false) + { + // Ensure the buffer list is available + _modifiers ??= new List(); + + // Load all IPropertyModifiers belonging the direct children of this GameObject + foreach (Transform child in transform) + { + // skip this GameObject if disabled + if (!child.gameObject.activeSelf && !includeInactive) continue; + // disabled children will be ignored + child.GetComponents(_modifiers); + // Call the children to apply their modified properties + foreach (IMaterialPropertyModifier propertyModifier in _modifiers) + { + // Check if the modifier is enabled (skip if not) + if (propertyModifier.enabled || includeInactive) + { + yield return propertyModifier; + } + } + } + + // Ensure no ref is kept + _modifiers.Clear(); + } + + // On enable and disable, update the target graphic + void OnEnable() => SetMaterialDirty(); + + void OnDisable() => SetMaterialDirty(); + + /// + /// Called by Graphic using the IMaterialModifier interface through the parent class + /// Modifies the buffered material to match all children component specifications + /// + /// A copy of the Graphic base material, buffered for reuse + protected override void ModifyMaterial(Material modifiedMaterial) + { + // Iterate over all active modifiers + foreach (IMaterialPropertyModifier modifier in GetModifiers()) + { + // Ignore un-init modifiers + if (!string.IsNullOrEmpty(modifier.PropertyName)) + { + // Apply the property to the new material + modifier.ApplyModifiedProperty(modifiedMaterial); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicMaterialOverride.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicMaterialOverride.cs.meta new file mode 100644 index 000000000..01bf3d148 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicMaterialOverride.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ec7c531f67844491ae84a4f3d1575d01 +timeCreated: 1681719063 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicMaterialOverride.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicMaterialReplacer.cs b/Assets/Plugins/Animate UI Materials/GraphicMaterialReplacer.cs new file mode 100644 index 000000000..1c3259589 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicMaterialReplacer.cs @@ -0,0 +1,56 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Simply replaces a Graphic component's material + /// Does not create or modify materials + /// Useful for debugging, or switching the material of a Graphic that does not offer this option in some context + /// + [ExecuteAlways] + [AddComponentMenu("UI/Animate UI Material/GraphicMaterialReplacer")] + public class GraphicMaterialReplacer : MonoBehaviour, IMaterialModifier + { + [SerializeField] Material material; + + public Material Material + { + get => material; + set { + material = value; + SetMaterialDirty(); + } + } + + /// + /// Request Graphic to regenerate materials + /// + void SetMaterialDirty() + { + if (TryGetComponent(out Graphic graphic)) + { + graphic.SetMaterialDirty(); + } + } + + // On enable and disable, update the target graphic + void OnEnable() => SetMaterialDirty(); + + void OnDisable() => SetMaterialDirty(); + + /// + /// From IMaterialModifier + /// Receives the current material before display, and returns another material if enabled + /// Here, simply sends the "material" field if enabled + /// + /// + /// A new material object + public Material GetModifiedMaterial(Material baseMaterial) + { + // Return the base material if invalid or if this component is disabled + if (!enabled || baseMaterial == null) return baseMaterial; + return material; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicMaterialReplacer.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicMaterialReplacer.cs.meta new file mode 100644 index 000000000..d3eed938f --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicMaterialReplacer.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ca4bb79969f54a608a95cc7bd9d297e7 +timeCreated: 1693523425 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicMaterialReplacer.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverride.cs b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverride.cs new file mode 100644 index 000000000..8ea8db5f2 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverride.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Used in combination with GraphicMaterialOverride to modify and animate shader properties + /// The base class is used for the shared Editor script, and reacting to OnValidate events + /// + [ExecuteAlways] + public abstract class GraphicPropertyOverride : MonoBehaviour, IMaterialPropertyModifier + { + /// + /// The name of the shader property, serialized + /// + [SerializeField] protected string propertyName; + + public virtual string DisplayName => propertyName; + + /// + /// The id of the shader property + /// + /// Should not be serialized, as it can change between game runs + protected int PropertyId; + + // Request a material update whenever the parent changes + void OnEnable() + { + SetMaterialDirty(true); + } + + void OnDisable() + { + SetMaterialDirty(); + } + +#if UNITY_EDITOR // if in the unity editor, include unity editor callbacks + /// + /// On editor change, mark as dirty + /// + void OnValidate() + { + SetMaterialDirty(true); + } +#endif + + /// + /// Try to retrieve and apply the default property value + /// If the source material cannot be found, reset to sensible defaults + /// + public abstract void ResetPropertyToDefault(); + + /// + /// Set the material as dirty + /// ApplyModifiedProperty will be called by the parent GraphicMaterialProperty + /// + /// If the GraphicPropertyOverride should try to get the shader property id, just to be safe + public void SetMaterialDirty(bool renewId = false) + { + if (renewId || PropertyId == 0) PropertyId = Shader.PropertyToID(propertyName); + GraphicMaterialOverride parent = ParentOverride; + if (parent) parent.SetMaterialDirty(); + } + + /// + /// Try to apply the GraphicPropertyOverride property to the material + /// Does not create a copy, only feed material instances to this + /// + /// The material to modify + public abstract void ApplyModifiedProperty(Material material); + + /// + /// The name of the shader property to override + /// Can be invalid if the shader has changed, or if the component was not setup + /// + public string PropertyName + { + get => propertyName; + set + { + propertyName = value; + SetMaterialDirty(true); + } + } + + /// + /// Try to get the Graphic component on the parent + /// + protected Graphic ParentGraphic => transform.parent ? transform.parent.GetComponent() : null; + + /// + /// Try to get the GraphicMaterialOverride component on the parent + /// + protected GraphicMaterialOverride ParentOverride => + transform.parent ? transform.parent.GetComponent() : null; + } + + /// + /// Template extension of GraphicPropertyOverride + /// Adds LateUpdate function to react to value changes + /// Compares value changes using EqualityComparer + /// Adds a SerializedField of type T + /// + /// + public abstract class GraphicPropertyOverride : GraphicPropertyOverride + { + /// + /// The serialized value, modified by the inspector or the animator + /// + [SerializeField] protected T propertyValue; + + /// + /// The last known value, init the the type default (0, null, ...) + /// Used to check for changes + /// NonSerialized to prevent unity from serializing this + /// + [NonSerialized] T _previousValue; + + /// + /// If _previousValue was set since last construction + /// + [NonSerialized] bool _previousValueIsInit; + + /// + /// Checks if any changes happened just before rendering + /// Can be removed to optimize, since OnDidApplyAnimationProperties is doing the heavy lifting + /// But OnDidApplyAnimationProperties is undocumented, and will potentially change silently in the future + /// + void LateUpdate() + { + // If a previous value was recorded + // And it perfectly matches the current value + // Then ignore this update + if (_previousValueIsInit && EqualityComparer.Default.Equals(propertyValue, _previousValue)) return; + + _previousValueIsInit = true; + _previousValue = propertyValue; + SetMaterialDirty(); + } + + /// + /// Called by the animator system when a value is modified + /// + public void OnDidApplyAnimationProperties() + { + _previousValueIsInit = true; + _previousValue = propertyValue; + SetMaterialDirty(); + } + + /// + /// The value of the overriding property + /// Will react correctly when changed + /// + public T PropertyValue + { + get => propertyValue; + set + { + _previousValueIsInit = true; + _previousValue = propertyValue = value; + SetMaterialDirty(); + } + } + + /// + /// Try to retrieve and apply the default property value + /// If the source material cannot be found, reset to sensible defaults + /// + public override void ResetPropertyToDefault() + { + // Try to get the associated Graphic component + Graphic graphic = ParentGraphic; + // If successful, get the material + Material material = graphic ? graphic.material : null; + // init the reset value to default + T value = default; + bool gotDefaultValue = false; + + // If material was received, try to get the default value from the material + if (material) gotDefaultValue = GetDefaultValue(material, out value); + + // Log a warning if we failed + if (!gotDefaultValue) Debug.LogWarning("Could not retrieve material default value", this); + + // Set current value to what we managed to retrieve, and update + PropertyValue = value; + } + + /// + /// Retrieve the default property value from the source material + /// + /// The source material + /// The value from the material + /// True if the value could be retrieved + public abstract bool GetDefaultValue(Material material, out T defaultValue); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverride.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverride.cs.meta new file mode 100644 index 000000000..144d8a025 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverride.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 41cc1aea6b8342d5a6c8ac437a094f0e +timeCreated: 1681914388 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicPropertyOverride.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideColor.cs b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideColor.cs new file mode 100644 index 000000000..b452d15d6 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideColor.cs @@ -0,0 +1,41 @@ +using UnityEngine; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Used in with GraphicMaterialOverride to modify a material without creating a variant + /// Added to a child of the Graphic element + /// This variant only applies to Color properties + /// + [AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideColor")] + public class GraphicPropertyOverrideColor : GraphicPropertyOverride + { +#if UNITY_EDITOR + /// + /// A flag for the editor to draw the color field as HDR + /// + public bool isHDR; +#endif + /// + /// Apply the modified property to the material + /// + /// + public override void ApplyModifiedProperty(Material material) + { + material.SetColor(PropertyId, propertyValue); + } + + /// + /// Retrieve the default Color value from the source material + /// + /// The source material + /// The Color value from the material + /// True if the value could be retrieved + public override bool GetDefaultValue(Material material, out Color defaultValue) + { + bool hasProperty = material.HasColor(PropertyId); + defaultValue = hasProperty ? material.GetColor(PropertyId) : default; + return hasProperty; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideColor.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideColor.cs.meta new file mode 100644 index 000000000..fd1dfeec5 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideColor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0769e07e9d844582aed9c22013f56c3b +timeCreated: 1681915536 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideColor.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideFloat.cs b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideFloat.cs new file mode 100644 index 000000000..4263a2dc9 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideFloat.cs @@ -0,0 +1,36 @@ +using UnityEngine; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Used in with GraphicMaterialOverride to modify a material without creating a variant + /// Added to a child of the Graphic element + /// This variant only applies to Float properties + /// + [AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideFloat")] + public class GraphicPropertyOverrideFloat : GraphicPropertyOverride + { + /// + /// Apply the modified property to the material + /// + /// + public override void ApplyModifiedProperty(Material material) + { + material.SetFloat(PropertyId, propertyValue); + } + + /// + /// Retrieve the default float value from the source material + /// + /// The source material + /// The float value from the material + /// True if the value could be retrieved + public override bool GetDefaultValue(Material material, out float defaultValue) + { + bool hasProperty = material.HasFloat(PropertyId); + if (hasProperty) defaultValue = material.GetFloat(PropertyId); + else defaultValue = default; + return hasProperty; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideFloat.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideFloat.cs.meta new file mode 100644 index 000000000..81b044cc6 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideFloat.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 389648ab9de94296b8f4a6f6957df101 +timeCreated: 1681915244 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideFloat.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideInt.cs b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideInt.cs new file mode 100644 index 000000000..5e8136caa --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideInt.cs @@ -0,0 +1,36 @@ +using UnityEngine; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Used in with GraphicMaterialOverride to modify a material without creating a variant + /// Added to a child of the Graphic element + /// This variant only applies to Int properties + /// + [AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideInt")] + public class GraphicPropertyOverrideInt : GraphicPropertyOverride + { + /// + /// Apply the modified property to the material + /// + /// + public override void ApplyModifiedProperty(Material material) + { + material.SetInteger(PropertyId, propertyValue); + } + + /// + /// Retrieve the default int value from the source material + /// + /// The source material + /// The int value from the material + /// True if the value could be retrieved + public override bool GetDefaultValue(Material material, out int defaultValue) + { + bool hasProperty = material.HasInteger(PropertyId); + if (hasProperty) defaultValue = material.GetInteger(PropertyId); + else defaultValue = default; + return hasProperty; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideInt.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideInt.cs.meta new file mode 100644 index 000000000..48658f1dd --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideInt.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 130e282abc8245dcae85a781438fb2bc +timeCreated: 1682061527 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideInt.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideRange.cs b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideRange.cs new file mode 100644 index 000000000..20c84aabb --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideRange.cs @@ -0,0 +1,36 @@ +using UnityEngine; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Used in with GraphicMaterialOverride to modify a material without creating a variant + /// Added to a child of the Graphic element + /// This variant only applies to Range properties + /// + [AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideRange")] + public class GraphicPropertyOverrideRange : GraphicPropertyOverride + { + /// + /// Apply the modified property to the material + /// + /// + public override void ApplyModifiedProperty(Material material) + { + material.SetFloat(PropertyId, propertyValue); + } + + /// + /// Retrieve the default float value from the source material + /// + /// The source material + /// The float value from the material + /// True if the value could be retrieved + public override bool GetDefaultValue(Material material, out float defaultValue) + { + bool hasProperty = material.HasFloat(PropertyId); + if (hasProperty) defaultValue = material.GetFloat(PropertyId); + else defaultValue = default; + return hasProperty; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideRange.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideRange.cs.meta new file mode 100644 index 000000000..301e68838 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideRange.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 035dcf41a5a94b9ba8c514a7714b4fbb +timeCreated: 1682061553 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideRange.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideScaleAndOffset.cs b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideScaleAndOffset.cs new file mode 100644 index 000000000..90808decf --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideScaleAndOffset.cs @@ -0,0 +1,57 @@ +using UnityEngine; + +namespace Plugins.Animate_UI_Materials +{ + [System.Serializable] + public struct TextureScaleOffset + { + public Texture Texture; + public Vector4 ScaleOffset; + public Vector2 Scale => new Vector2(ScaleOffset.x, ScaleOffset.y); + public Vector2 Offset => new Vector2(ScaleOffset.z, ScaleOffset.w); + + public TextureScaleOffset(Texture texture, Vector2 scale, Vector2 offset) + { + Texture = texture; + ScaleOffset = new Vector4(scale.x, scale.y, offset.x, offset.y); + } + } + + /// + /// Used in with GraphicMaterialOverride to modify a material without creating a variant + /// Added to a child of the Graphic element + /// This variant only applies to Texture properties + /// + [AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideScaleAndOffset")] + public class GraphicPropertyOverrideScaleAndOffset : GraphicPropertyOverride + { + public override string DisplayName => $"{propertyName} Scale Offset"; + + /// + /// Apply the modified property to the material + /// + /// + public override void ApplyModifiedProperty(Material material) + { + material.SetTextureOffset(PropertyId, propertyValue.Offset); + material.SetTextureScale(PropertyId, propertyValue.Scale); + material.SetTexture(PropertyId, propertyValue.Texture); + } + + /// + /// Retrieve the default Texture value from the source material + /// + /// The source material + /// The Texture value from the material + /// True if the value could be retrieved + public override bool GetDefaultValue(Material material, out TextureScaleOffset defaultValue) + { + bool hasProperty = material.HasTexture(PropertyId); + Vector2 scale = hasProperty ? material.GetTextureOffset(PropertyId) : Vector2.one; + Vector2 offset = hasProperty ? material.GetTextureScale(PropertyId) : Vector2.zero; + Texture texture = hasProperty ? material.GetTexture(PropertyId) : null; + defaultValue = new TextureScaleOffset(texture, scale, offset); + return hasProperty; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideScaleAndOffset.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideScaleAndOffset.cs.meta new file mode 100644 index 000000000..9ffafe031 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideScaleAndOffset.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c8ebb8aba46242f88d3296cc8d7984c9 +timeCreated: 1701451148 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideScaleAndOffset.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideTexture.cs b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideTexture.cs new file mode 100644 index 000000000..4f8ba6cd4 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideTexture.cs @@ -0,0 +1,36 @@ +using UnityEngine; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Used in with GraphicMaterialOverride to modify a material without creating a variant + /// Added to a child of the Graphic element + /// This variant only applies to Texture properties + /// + [AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideTexture")] + public class GraphicPropertyOverrideTexture : GraphicPropertyOverride + { + /// + /// Apply the modified property to the material + /// + /// + public override void ApplyModifiedProperty(Material material) + { + material.SetTexture(PropertyId, propertyValue); + } + + /// + /// Retrieve the default Texture value from the source material + /// + /// The source material + /// The Texture value from the material + /// True if the value could be retrieved + public override bool GetDefaultValue(Material material, out Texture defaultValue) + { + bool hasProperty = material.HasTexture(PropertyId); + if (hasProperty) defaultValue = material.GetTexture(PropertyId); + else defaultValue = default; + return hasProperty; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideTexture.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideTexture.cs.meta new file mode 100644 index 000000000..069186e18 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideTexture.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e6f24b72ca8a4caabda35db3768eaf4f +timeCreated: 1682090672 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideTexture.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideVector.cs b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideVector.cs new file mode 100644 index 000000000..ba4ab82fe --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideVector.cs @@ -0,0 +1,36 @@ +using UnityEngine; + +namespace Plugins.Animate_UI_Materials +{ + /// + /// Used in with GraphicMaterialOverride to modify a material without creating a variant + /// Added to a child of the Graphic element + /// This variant only applies to Vector properties + /// + [AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideVector")] + public class GraphicPropertyOverrideVector : GraphicPropertyOverride + { + /// + /// Apply the modified property to the material + /// + /// + public override void ApplyModifiedProperty(Material material) + { + material.SetVector(PropertyId, propertyValue); + } + + /// + /// Retrieve the default Vector value from the source material + /// + /// The source material + /// The Vector value from the material + /// True if the value could be retrieved + public override bool GetDefaultValue(Material material, out Vector4 defaultValue) + { + bool hasProperty = material.HasVector(PropertyId); + if (hasProperty) defaultValue = material.GetVector(PropertyId); + else defaultValue = default; + return hasProperty; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideVector.cs.meta b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideVector.cs.meta new file mode 100644 index 000000000..25ce3762a --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideVector.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7de2cc36a6a241da9a1302efa1f3cf46 +timeCreated: 1682061467 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/GraphicPropertyOverrideVector.cs + uploadId: 766200 diff --git a/Assets/Plugins/Animate UI Materials/IMaterialPropertyModifier.cs b/Assets/Plugins/Animate UI Materials/IMaterialPropertyModifier.cs new file mode 100644 index 000000000..ad62dce10 --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/IMaterialPropertyModifier.cs @@ -0,0 +1,39 @@ +using UnityEngine; + +namespace Plugins.Animate_UI_Materials +{ + public interface IMaterialPropertyModifier + { + /// + /// The name of the shader property that the modifier affects + /// + string PropertyName { get; } + + /// + /// The display name of the modifier component for the editor + /// + string DisplayName { get; } + + /// + /// The "enabled" value of the modifier component + /// + bool enabled { get; set; } + + /// + /// The "gameObject" value of the modifier component + /// + GameObject gameObject { get; } + + /// + /// Apply the modified property to the material + /// + /// + void ApplyModifiedProperty(Material material); + + /// + /// Try to retrieve and apply the default property value + /// If the source material cannot be found, reset to sensible defaults + /// + void ResetPropertyToDefault(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Animate UI Materials/IMaterialPropertyModifier.cs.meta b/Assets/Plugins/Animate UI Materials/IMaterialPropertyModifier.cs.meta new file mode 100644 index 000000000..37654bdcc --- /dev/null +++ b/Assets/Plugins/Animate UI Materials/IMaterialPropertyModifier.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f54bd367836249f1a19414bb0a531a5a +timeCreated: 1682057978 +AssetOrigin: + serializedVersion: 1 + productId: 253197 + packageName: Animate UI Materials + packageVersion: 1.3.0 + assetPath: Assets/Plugins/Animate UI Materials/IMaterialPropertyModifier.cs + uploadId: 766200 diff --git a/Assets/Plugins/Easy Save 3/Resources/ES3/ES3Defaults.asset b/Assets/Plugins/Easy Save 3/Resources/ES3/ES3Defaults.asset index d69cabd23..0aca3f01a 100644 --- a/Assets/Plugins/Easy Save 3/Resources/ES3/ES3Defaults.asset +++ b/Assets/Plugins/Easy Save 3/Resources/ES3/ES3Defaults.asset @@ -42,6 +42,7 @@ MonoBehaviour: - andywiecko.BurstTriangulator - Assembly-CSharp - Assembly-CSharp-firstpass + - Assembly-GraphicMaterialOverride - AstarPathfindingProject - Autodesk.Fbx - Autodesk.Fbx.BuildTestAssets diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesFixtureEmissive.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesFixtureEmissive.mat index 49011fe68..edb3f8a12 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesFixtureEmissive.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesFixtureEmissive.mat @@ -1,5 +1,18 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-462588174902266333 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -11,9 +24,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 55dd6397dd059324398dec8c06cb4153, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _DISABLE_SSR_TRANSPARENT - m_InvalidKeywords: [] m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesRoughBlack.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesRoughBlack.mat index 613333058..93f5c8ad5 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesRoughBlack.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesRoughBlack.mat @@ -29,6 +29,19 @@ MonoBehaviour: hdPluginSubTargetMaterialVersions: m_Keys: [] m_Values: +--- !u!114 &-3900041929240879694 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -40,9 +53,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 181d9f8961a46b84fa2b2acfc30cdf9c, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _DISABLE_SSR_TRANSPARENT + m_ValidKeywords: [] m_InvalidKeywords: + - _DISABLE_SSR_TRANSPARENT - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesSpotlightEmissive.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesSpotlightEmissive.mat index a4b8ca28b..164603b1e 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesSpotlightEmissive.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesSpotlightEmissive.mat @@ -11,9 +11,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 55dd6397dd059324398dec8c06cb4153, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _DISABLE_SSR_TRANSPARENT - m_InvalidKeywords: [] m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -108,6 +108,20 @@ Material: - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} - _Emission_Color: {r: 1, g: 1, b: 1, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &341765169038055598 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!114 &4129780837305980848 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesTurntable_White.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesTurntable_White.mat index 9b27195a0..3d54df207 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesTurntable_White.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/SamplesTurntable_White.mat @@ -1,5 +1,18 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6334813361708750137 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!114 &-4311493914180223959 MonoBehaviour: m_ObjectHideFlags: 11 @@ -24,9 +37,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: daae7dca060ff1344bf7d7e511e0e961, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _DISABLE_SSR_TRANSPARENT - m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BackdropFabric.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BackdropFabric.mat index c63c69bad..d4e8e53d4 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BackdropFabric.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BackdropFabric.mat @@ -13,6 +13,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: version: 9 +--- !u!114 &-6154481183976877875 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -24,10 +37,10 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 137a9d0b49032c544abaff345d2c4f5c, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _DISABLE_SSR_TRANSPARENT - _DOUBLESIDED_ON - m_InvalidKeywords: - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BackdropFabric_Red.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BackdropFabric_Red.mat index 1ba04ca52..81d03af4a 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BackdropFabric_Red.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BackdropFabric_Red.mat @@ -24,10 +24,10 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 137a9d0b49032c544abaff345d2c4f5c, type: 3} m_Parent: {fileID: 2100000, guid: 638589c7422aff14eaa79da6fad69c7c, type: 2} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _DISABLE_SSR_TRANSPARENT - _DOUBLESIDED_ON - m_InvalidKeywords: - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 @@ -54,6 +54,19 @@ Material: - _Color: {r: 0.5471698, g: 0.120790295, b: 0.13512228, a: 1} m_BuildTextureStacks: [] m_AllowLocking: 1 +--- !u!114 &1443011941897949152 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!114 &6461052843977076103 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BlackPaint.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BlackPaint.mat index 28b235dcd..53b4fd4af 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BlackPaint.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_BlackPaint.mat @@ -11,9 +11,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 77a073c5851b973499ddf6de1a1c803f, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _DISABLE_SSR_TRANSPARENT + m_ValidKeywords: [] m_InvalidKeywords: + - _DISABLE_SSR_TRANSPARENT - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 @@ -319,6 +319,19 @@ Material: - _UV_Tiling: {r: 1, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] m_AllowLocking: 1 +--- !u!114 &7008279879314206002 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!114 &7902377284972801844 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Checker.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Checker.mat index 0518854c4..baf4c93fb 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Checker.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Checker.mat @@ -11,9 +11,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 12b97e20ea15a7844849d66169c21bed, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _DISABLE_SSR_TRANSPARENT - m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -137,6 +137,19 @@ MonoBehaviour: hdPluginSubTargetMaterialVersions: m_Keys: [] m_Values: +--- !u!114 &6243711038889969139 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!114 &8018026817525244604 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Curtain.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Curtain.mat index bfd6c6ddf..26e183480 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Curtain.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Curtain.mat @@ -13,6 +13,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: version: 9 +--- !u!114 &-4757135422042230766 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -24,10 +37,10 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 137a9d0b49032c544abaff345d2c4f5c, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _DISABLE_SSR_TRANSPARENT - _DOUBLESIDED_ON - m_InvalidKeywords: - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Platform.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Platform.mat index e04531c8a..2ad481178 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Platform.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Platform.mat @@ -1,5 +1,18 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5759668321534919737 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -11,9 +24,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 77a073c5851b973499ddf6de1a1c803f, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _DISABLE_SSR_TRANSPARENT + m_ValidKeywords: [] m_InvalidKeywords: + - _DISABLE_SSR_TRANSPARENT - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_RoughGrey.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_RoughGrey.mat index 071e86c71..640fd54b1 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_RoughGrey.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_RoughGrey.mat @@ -1,5 +1,18 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1603643827908197234 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -11,9 +24,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 181d9f8961a46b84fa2b2acfc30cdf9c, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _DISABLE_SSR_TRANSPARENT + m_ValidKeywords: [] m_InvalidKeywords: + - _DISABLE_SSR_TRANSPARENT - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_RoughSteel.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_RoughSteel.mat index c093e2580..61e623d20 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_RoughSteel.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_RoughSteel.mat @@ -11,9 +11,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 181d9f8961a46b84fa2b2acfc30cdf9c, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _DISABLE_SSR_TRANSPARENT + m_ValidKeywords: [] m_InvalidKeywords: + - _DISABLE_SSR_TRANSPARENT - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 @@ -337,3 +337,16 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: version: 9 +--- !u!114 &7470243039165956749 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Tripod.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Tripod.mat index dd951ff58..090fc69a5 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Tripod.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/Materials/Samples_Tripod.mat @@ -1,5 +1,18 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-201879338358150017 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -11,9 +24,9 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: 77a073c5851b973499ddf6de1a1c803f, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _DISABLE_SSR_TRANSPARENT + m_ValidKeywords: [] m_InvalidKeywords: + - _DISABLE_SSR_TRANSPARENT - _NORMALMAP_TANGENT_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 @@ -309,6 +322,7 @@ Material: - _UV_Offset: {r: 0, g: 0, b: 0, a: 0} - _UV_Tiling: {r: 1, g: 1, b: 0, a: 0} m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &7902377284972801844 MonoBehaviour: m_ObjectHideFlags: 11 diff --git a/Assets/Samples/Scriptable Render Pipeline Core/Common/TextMesh Pro/Resources/Fonts & Materials/Inter-Regular SDF Emissive Variant.mat b/Assets/Samples/Scriptable Render Pipeline Core/Common/TextMesh Pro/Resources/Fonts & Materials/Inter-Regular SDF Emissive Variant.mat index 44da1bdd1..bf4944068 100644 --- a/Assets/Samples/Scriptable Render Pipeline Core/Common/TextMesh Pro/Resources/Fonts & Materials/Inter-Regular SDF Emissive Variant.mat +++ b/Assets/Samples/Scriptable Render Pipeline Core/Common/TextMesh Pro/Resources/Fonts & Materials/Inter-Regular SDF Emissive Variant.mat @@ -1,5 +1,18 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-212331205594638590 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -11,12 +24,12 @@ Material: m_Shader: {fileID: -6465566751694194690, guid: f8605069e61e60e4685c8e97ead17a56, type: 3} m_Parent: {fileID: -6055507529455485361, guid: 2f7116f10747a67409388e93052ae222, type: 2} m_ModifiedSerializedProperties: 2 - m_ValidKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: - _DISABLE_SSR_TRANSPARENT - _DOUBLESIDED_ON - _ENABLE_FOG_ON_TRANSPARENT - _SURFACE_TYPE_TRANSPARENT - m_InvalidKeywords: [] m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 diff --git a/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Images/ItemBox.png b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Images/ItemBox.png new file mode 100644 index 000000000..4e64ed05c --- /dev/null +++ b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Images/ItemBox.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:300c8561985685c102de392e0b9a0c1b2367f8825bd5dca3a84375d6c48b2e6c +size 4970 diff --git a/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Images/ItemBox.png.meta b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Images/ItemBox.png.meta new file mode 100644 index 000000000..716f3eb2a --- /dev/null +++ b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Images/ItemBox.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: a8b2a9a778c41bc4088946a66a05dac4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + 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 + 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: 2 + spriteMeshType: 0 + 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: 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 + - serializedVersion: 4 + buildTarget: Android + 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: WindowsStoreApps + 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: diff --git a/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials.meta b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials.meta new file mode 100644 index 000000000..d188f2f3d --- /dev/null +++ b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d49b22a0c9b782343b8967596b590276 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials/ItemSlotUi.mat b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials/ItemSlotUi.mat new file mode 100644 index 000000000..b875abfff --- /dev/null +++ b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials/ItemSlotUi.mat @@ -0,0 +1,374 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3760092364010213104 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 9 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ItemSlotUi + m_Shader: {fileID: 4800000, guid: e320962886da01749b5c68627fde4db9, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - OUTBASE8DIR_ON + - OUTBASEPIXELPERF_ON + - OUTBASE_ON + - OUTTEX_ON + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ColorRampTex: + m_Texture: {fileID: 2800000, guid: 279657edc397ece4b8029c727adf6ddc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ColorRampTexGradient: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ColorSwapTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortTex: + m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FadeBurnTex: + m_Texture: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FadeTex: + m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _GlowTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineDistortTex: + m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 2800000, guid: 74087f6d03f233e4a8a142fa01f9e5cf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OverlayTex: + m_Texture: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ShineMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Texture2D: + m_Texture: {fileID: 2800000, guid: fab06e0be9375cc4d823efa71629885c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _Alpha: 1 + - _AlphaClip: 0 + - _AlphaCutoffValue: 0.25 + - _AlphaOutlineBlend: 1 + - _AlphaOutlineGlow: 5 + - _AlphaOutlineMinAlpha: 0 + - _AlphaOutlinePower: 1 + - _AlphaRoundThreshold: 0.5 + - _AlphaToMask: 0 + - _BillboardY: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BlurHD: 0 + - _BlurIntensity: 10 + - _Brightness: 0 + - _BumpScale: 1 + - _ChromAberrAlpha: 0.4 + - _ChromAberrAmount: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ClipUvDown: 0 + - _ClipUvLeft: 0 + - _ClipUvRight: 0 + - _ClipUvUp: 0 + - _ColorChangeLuminosity: 0 + - _ColorChangeTolerance: 0.25 + - _ColorChangeTolerance2: 0.25 + - _ColorChangeTolerance3: 0.25 + - _ColorMask: 15 + - _ColorRampBlend: 1 + - _ColorRampLuminosity: 0 + - _ColorRampOutline: 0 + - _ColorSwapBlend: 1 + - _ColorSwapBlueLuminosity: 0.5 + - _ColorSwapGreenLuminosity: 0.5 + - _ColorSwapRedLuminosity: 0.5 + - _Contrast: 1 + - _Cull: 2 + - _CullingOption: 0 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortAmount: 0.5 + - _DistortTexXSpeed: 5 + - _DistortTexYSpeed: 5 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EditorDrawers: 7 + - _EnvironmentReflections: 1 + - _FadeAmount: -0.1 + - _FadeBurnGlow: 2 + - _FadeBurnTransition: 0.075 + - _FadeBurnWidth: 0.025 + - _FishEyeUvAmount: 0.35 + - _FlickerAlpha: 0 + - _FlickerFreq: 0.2 + - _FlickerPercent: 0.05 + - _GhostBlend: 1 + - _GhostColorBoost: 1 + - _GhostTransparency: 0 + - _GlitchAmount: 3 + - _GlitchSize: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Glow: 10 + - _GlowGlobal: 1 + - _GradBlend: 1 + - _GradBoostX: 1.2 + - _GradBoostY: 1.2 + - _GradIsRadial: 0 + - _GrassManualAnim: 1 + - _GrassManualToggle: 0 + - _GrassRadialBend: 0.1 + - _GrassSpeed: 2 + - _GrassWind: 20 + - _GreyscaleBlend: 1 + - _GreyscaleLuminosity: 0 + - _GreyscaleOutline: 0 + - _Grid_Tiles: 24 + - _HandDrawnAmount: 10 + - _HandDrawnSpeed: 5 + - _HitEffectBlend: 1 + - _HitEffectGlow: 5 + - _HologramBlend: 1 + - _HologramMaxAlpha: 0.75 + - _HologramMinAlpha: 0.1 + - _HologramStripesAmount: 0.1 + - _HologramStripesSpeed: 4.5 + - _HologramUnmodAmount: 0 + - _HsvBright: 1 + - _HsvSaturation: 1 + - _HsvShift: 180 + - _InnerOutlineAlpha: 1 + - _InnerOutlineGlow: 4 + - _InnerOutlineThickness: 1 + - _MaxXUV: 1 + - _MaxYUV: 1 + - _Metallic: 0 + - _MinXUV: 0 + - _MinYUV: 0 + - _MotionBlurAngle: 0.1 + - _MotionBlurDist: 1.25 + - _MyDstMode: 10 + - _MySrcMode: 5 + - _NegativeAmount: 1 + - _OcclusionStrength: 1 + - _OffsetUvX: 0 + - _OffsetUvY: 0 + - _OnlyInnerOutline: 0 + - _OnlyOutline: 0 + - _OutlineAlpha: 1 + - _OutlineDistortAmount: 0.5 + - _OutlineDistortTexXSpeed: 5 + - _OutlineDistortTexYSpeed: 5 + - _OutlineGlow: 1 + - _OutlinePixelWidth: 30 + - _OutlineTexRotation: 136 + - _OutlineTexRotationSpeed: 15 + - _OutlineTexXSpeed: 0 + - _OutlineTexYSpeed: 10 + - _OutlineThickness: 1 + - _OutlineWidth: 0.051 + - _OverlayBlend: 1 + - _OverlayGlow: 1 + - _OverlayTextureScrollXSpeed: 0.25 + - _OverlayTextureScrollYSpeed: 0.25 + - _Parallax: 0.005 + - _PinchUvAmount: 0.35 + - _PixelateSize: 32 + - _PosterizeGamma: 0.75 + - _PosterizeNumColors: 8 + - _PosterizeOutline: 0 + - _QueueOffset: 0 + - _RadialClip: 45 + - _RadialClip2: 0 + - _RadialStartAngle: 90 + - _Radius: 0.2 + - _RandomSeed: 0 + - _ReceiveShadows: 1 + - _RectSize: 1 + - _RotateUvAmount: 0 + - _RoundWaveSpeed: 2 + - _RoundWaveStrength: 0.7 + - _ShadowAlpha: 0.5 + - _ShadowX: 0.1 + - _ShadowY: -0.05 + - _ShakeUvSpeed: 2.5 + - _ShakeUvX: 1.5 + - _ShakeUvY: 1 + - _ShineGlow: 1 + - _ShineLocation: 0.5 + - _ShineRotate: 0 + - _ShineWidth: 0.1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Surface: 0 + - _TextureScrollXSpeed: 1 + - _TextureScrollYSpeed: 0 + - _Tilt: -0.3 + - _TwistUvAmount: 1 + - _TwistUvPosX: 0.5 + - _TwistUvPosY: 0.5 + - _TwistUvRadius: 0.75 + - _UIMaskSoftnessX: 1 + - _UIMaskSoftnessY: 1 + - _WarpScale: 0.5 + - _WarpSpeed: 8 + - _WarpStrength: 0.025 + - _WaveAmount: 7 + - _WaveSpeed: 10 + - _WaveStrength: 7.5 + - _WaveX: 0 + - _WaveY: 0.5 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZTestMode: 0 + - _ZWrite: 0 + - _ZoomUvAmount: 0.5 + m_Colors: + - _AlphaOutlineColor: {r: 1, g: 0.033018887, b: 0.033018887, a: 1} + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _ClipRect: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _ColorChangeNewCol: {r: 1, g: 1, b: 0, a: 1} + - _ColorChangeNewCol2: {r: 1, g: 1, b: 0, a: 1} + - _ColorChangeNewCol3: {r: 1, g: 1, b: 0, a: 1} + - _ColorChangeTarget: {r: 1, g: 0, b: 0, a: 1} + - _ColorChangeTarget2: {r: 1, g: 0, b: 0, a: 1} + - _ColorChangeTarget3: {r: 1, g: 0, b: 0, a: 1} + - _ColorSwapBlue: {r: 1, g: 1, b: 1, a: 1} + - _ColorSwapGreen: {r: 1, g: 1, b: 1, a: 1} + - _ColorSwapRed: {r: 1, g: 1, b: 1, a: 1} + - _Dimensions: {r: 0.8, g: 0.6, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _FadeBurnColor: {r: 1, g: 1, b: 0, a: 1} + - _GlowColor: {r: 1, g: 1, b: 1, a: 1} + - _GradBotLeftCol: {r: 0, g: 0, b: 1, a: 1} + - _GradBotRightCol: {r: 0, g: 1, b: 0, a: 1} + - _GradTopLeftCol: {r: 1, g: 0, b: 0, a: 1} + - _GradTopRightCol: {r: 1, g: 1, b: 0, a: 1} + - _GreyscaleTintColor: {r: 1, g: 1, b: 1, a: 1} + - _HitEffectColor: {r: 1, g: 1, b: 1, a: 1} + - _HologramStripeColor: {r: 0, g: 1, b: 1, a: 1} + - _InnerOutlineColor: {r: 1, g: 0, b: 0, a: 1} + - _OutlineColor: {r: 1, g: 1, b: 1, a: 1} + - _OverlayColor: {r: 1, g: 1, b: 1, a: 1} + - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} + - _ShineColor: {r: 1, g: 1, b: 1, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials/ItemSlotUi.mat.meta b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials/ItemSlotUi.mat.meta new file mode 100644 index 000000000..edfe72e2f --- /dev/null +++ b/Assets/_DDD/Restaurant/Ui/RestaurantManagementUi/Materials/ItemSlotUi.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 62523c9155dcc8c4696b91b10c7ef4dc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/AnimationController/InventorySlotUi.controller b/Assets/_DDD/_Addressables/AnimationController/InventorySlotUi.controller index 4b2765286..a80e006a2 100644 --- a/Assets/_DDD/_Addressables/AnimationController/InventorySlotUi.controller +++ b/Assets/_DDD/_Addressables/AnimationController/InventorySlotUi.controller @@ -133,20 +133,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -155,15 +155,6 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: - - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - isIntCurve: 0 - isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 4080383872 attribute: 2526845255 @@ -200,6 +191,15 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -313,20 +313,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 @@ -565,29 +565,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.16666667 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -605,15 +596,6 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 - - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - isIntCurve: 0 - isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 4080383872 attribute: 2526845255 @@ -650,6 +632,15 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -792,36 +783,6 @@ AnimationClip: classID: 114 script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.16666667 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 - serializedVersion: 2 curve: serializedVersion: 2 @@ -912,6 +873,27 @@ AnimationClip: classID: 224 script: {fileID: 0} flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 @@ -1101,20 +1083,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -1123,15 +1105,6 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: - - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - isIntCurve: 0 - isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 4080383872 attribute: 2526845255 @@ -1168,6 +1141,15 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -1281,20 +1263,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 @@ -1485,20 +1467,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -1508,10 +1490,10 @@ AnimationClip: m_ClipBindingConstant: genericBindings: - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 customType: 0 isPPtrCurve: 0 isIntCurve: 0 @@ -1545,20 +1527,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 @@ -1697,20 +1679,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -1719,15 +1701,6 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: - - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - isIntCurve: 0 - isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 4080383872 attribute: 2526845255 @@ -1764,6 +1737,15 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -1877,20 +1859,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 diff --git a/Assets/_DDD/_Addressables/AnimationController/TodayMenuSlotUi.controller b/Assets/_DDD/_Addressables/AnimationController/TodayMenuSlotUi.controller index 0e1678a08..51c7fda52 100644 --- a/Assets/_DDD/_Addressables/AnimationController/TodayMenuSlotUi.controller +++ b/Assets/_DDD/_Addressables/AnimationController/TodayMenuSlotUi.controller @@ -133,20 +133,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -155,15 +155,6 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: - - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - isIntCurve: 0 - isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 4080383872 attribute: 2526845255 @@ -200,6 +191,15 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -313,20 +313,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 @@ -424,15 +424,6 @@ AnimationClip: weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 0.16666667 - value: {x: 0.9, y: 0.9, z: 0.9} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -451,15 +442,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.8980393 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -481,15 +463,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.8588236 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -511,15 +484,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.6 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -541,15 +505,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -564,30 +519,21 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.16666667 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -633,18 +579,18 @@ AnimationClip: isIntCurve: 0 isSerializeReferenceCurve: 0 - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 + path: 4080383872 + attribute: 304273561 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 customType: 0 isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 - serializedVersion: 2 - path: 4080383872 - attribute: 304273561 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} typeID: 114 customType: 0 isPPtrCurve: 0 @@ -656,7 +602,7 @@ AnimationClip: m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.16666667 + m_StopTime: 0 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 @@ -685,15 +631,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.8980393 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -715,15 +652,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.8588236 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -745,15 +673,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.6 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -775,15 +694,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -792,36 +702,6 @@ AnimationClip: classID: 114 script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.16666667 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 - serializedVersion: 2 curve: serializedVersion: 2 @@ -835,15 +715,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.9 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -865,15 +736,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.9 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -895,15 +757,6 @@ AnimationClip: weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 0.9 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 @@ -912,6 +765,27 @@ AnimationClip: classID: 224 script: {fileID: 0} flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 @@ -1101,20 +975,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -1123,15 +997,6 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: - - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - isIntCurve: 0 - isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 4080383872 attribute: 2526845255 @@ -1168,6 +1033,15 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -1281,20 +1155,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 @@ -1469,27 +1343,6 @@ AnimationClip: m_PositionCurves: [] m_ScaleCurves: [] m_FloatCurves: - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 - serializedVersion: 2 curve: serializedVersion: 2 @@ -1574,6 +1427,27 @@ AnimationClip: classID: 114 script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -1582,15 +1456,6 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: - - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - isIntCurve: 0 - isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 4080383872 attribute: 2526845255 @@ -1627,6 +1492,15 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -1649,27 +1523,6 @@ AnimationClip: m_HeightFromFeet: 0 m_Mirror: 0 m_EditorCurves: - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 - serializedVersion: 2 curve: serializedVersion: 2 @@ -1754,6 +1607,27 @@ AnimationClip: classID: 114 script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 @@ -1892,20 +1766,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -1914,15 +1788,6 @@ AnimationClip: m_Extent: {x: 0, y: 0, z: 0} m_ClipBindingConstant: genericBindings: - - serializedVersion: 2 - path: 94248739 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - isIntCurve: 0 - isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 4080383872 attribute: 2526845255 @@ -1959,6 +1824,15 @@ AnimationClip: isPPtrCurve: 0 isIntCurve: 0 isSerializeReferenceCurve: 0 + - serializedVersion: 2 + path: 2333811533 + attribute: 2659956753 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -2072,20 +1946,20 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0 outWeight: 0 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_IsActive - path: SelectedOutline - classID: 1 - script: {fileID: 0} - flags: 16 + attribute: propertyValue + path: Background/_OutlineAlpha Override + classID: 114 + script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} + flags: 0 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 diff --git a/Assets/_DDD/_Addressables/Prefabs/Uis/ItemSlotUi.prefab b/Assets/_DDD/_Addressables/Prefabs/Uis/ItemSlotUi.prefab index 82281c06c..15e55cbb0 100644 --- a/Assets/_DDD/_Addressables/Prefabs/Uis/ItemSlotUi.prefab +++ b/Assets/_DDD/_Addressables/Prefabs/Uis/ItemSlotUi.prefab @@ -34,7 +34,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: -20, y: 15} + m_AnchoredPosition: {x: -30, y: 25} m_SizeDelta: {x: 30, y: 30} m_Pivot: {x: 1, y: 0} --- !u!222 &8540652785162385225 @@ -108,8 +108,6 @@ RectTransform: m_ConstrainProportionsScale: 1 m_Children: - {fileID: 3973346312149096682} - - {fileID: 2364321557392459264} - - {fileID: 2026018552117187495} - {fileID: 3241937078251618106} - {fileID: 5528041273083603964} - {fileID: 2305155522179591488} @@ -250,8 +248,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 15} - m_SizeDelta: {x: -40, y: 25} + m_AnchoredPosition: {x: 0, y: 25} + m_SizeDelta: {x: -60, y: 25} m_Pivot: {x: 0.5, y: 0} --- !u!222 &2235499953358018031 CanvasRenderer: @@ -352,81 +350,6 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &4960603354977620775 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2364321557392459264} - - component: {fileID: 8922009401383106673} - - component: {fileID: 4772930129477945835} - m_Layer: 5 - m_Name: Outline - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2364321557392459264 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4960603354977620775} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 1 - m_Children: [] - m_Father: {fileID: 186537154872449206} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -20, y: -20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8922009401383106673 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4960603354977620775} - m_CullTransparentMesh: 1 ---- !u!114 &4772930129477945835 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4960603354977620775} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b0f4b3f7eff669340b35ab31c1a06e65, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 3 --- !u!1 &5141141275122857504 GameObject: m_ObjectHideFlags: 0 @@ -438,6 +361,7 @@ GameObject: - component: {fileID: 3973346312149096682} - component: {fileID: 6814242016424598022} - component: {fileID: 2629700089687513121} + - component: {fileID: 3164307467709866316} m_Layer: 5 m_Name: Background m_TagString: Untagged @@ -456,7 +380,8 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 1 - m_Children: [] + m_Children: + - {fileID: 5660629238092796066} m_Father: {fileID: 186537154872449206} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -484,15 +409,15 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.8980393, g: 0.8588236, b: 0.7176471, a: 1} + m_Material: {fileID: 2100000, guid: 62523c9155dcc8c4696b91b10c7ef4dc, type: 2} + m_Color: {r: 0.89804, g: 0.85882, b: 0.71765, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 0} + m_Sprite: {fileID: 21300000, guid: a8b2a9a778c41bc4088946a66a05dac4, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -502,7 +427,19 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5733587565015662352 +--- !u!114 &3164307467709866316 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5141141275122857504} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ec7c531f67844491ae84a4f3d1575d01, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5249074558182527543 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -510,73 +447,44 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2026018552117187495} - - component: {fileID: 5388518051014973609} - - component: {fileID: 6485513727323019859} + - component: {fileID: 5660629238092796066} + - component: {fileID: 8525017117390620210} m_Layer: 5 - m_Name: SelectedOutline + m_Name: _OutlineAlpha Override m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &2026018552117187495 -RectTransform: +--- !u!4 &5660629238092796066 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5733587565015662352} + m_GameObject: {fileID: 5249074558182527543} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 1 m_Children: [] - m_Father: {fileID: 186537154872449206} + m_Father: {fileID: 3973346312149096682} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -8, y: -8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5388518051014973609 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5733587565015662352} - m_CullTransparentMesh: 1 ---- !u!114 &6485513727323019859 +--- !u!114 &8525017117390620210 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5733587565015662352} + m_GameObject: {fileID: 5249074558182527543} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 035dcf41a5a94b9ba8c514a7714b4fbb, type: 3} m_Name: m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b0f4b3f7eff669340b35ab31c1a06e65, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 3 + propertyName: _OutlineAlpha + propertyValue: 1 --- !u!1 &8231440998985588555 GameObject: m_ObjectHideFlags: 0 @@ -612,7 +520,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -40, y: -40} + m_SizeDelta: {x: -60, y: -60} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3518282537249179397 CanvasRenderer: @@ -642,7 +550,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 0} + m_Sprite: {fileID: 21300000, guid: 7b0669364db4d5945b2764f2a5203be5, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 diff --git a/Assets/_DDD/_Addressables/Scenes/Restaurant.unity b/Assets/_DDD/_Addressables/Scenes/Restaurant.unity index 8ec0f8f72..3aae3f610 100644 --- a/Assets/_DDD/_Addressables/Scenes/Restaurant.unity +++ b/Assets/_DDD/_Addressables/Scenes/Restaurant.unity @@ -2511,6 +2511,947 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 04cb72fe661fd534b950283199ac4a83, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &1013698577 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 574561958581785909, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 574561958581785909, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 574561958581785909, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 80.05 + objectReference: {fileID: 0} + - target: {fileID: 574561958581785909, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 49 + objectReference: {fileID: 0} + - target: {fileID: 574561958581785909, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 40.025 + objectReference: {fileID: 0} + - target: {fileID: 574561958581785909, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -24.5 + objectReference: {fileID: 0} + - target: {fileID: 621513544542430591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 621513544542430591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 621513544542430591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 621513544542430591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 621513544542430591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 621513544542430591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775559944225448954, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775559944225448954, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775559944225448954, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775559944225448954, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775559944225448954, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 775559944225448954, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 847569782515972274, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 847569782515972274, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 847569782515972274, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 46.620003 + objectReference: {fileID: 0} + - target: {fileID: 847569782515972274, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 847569782515972274, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 23.310001 + objectReference: {fileID: 0} + - target: {fileID: 847569782515972274, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -25 + objectReference: {fileID: 0} + - target: {fileID: 902589941271221594, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 902589941271221594, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 902589941271221594, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 902589941271221594, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 902589941271221594, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 902589941271221594, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1059650812255381212, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1059650812255381212, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1059650812255381212, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 51.08 + objectReference: {fileID: 0} + - target: {fileID: 1059650812255381212, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 1059650812255381212, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 25.54 + objectReference: {fileID: 0} + - target: {fileID: 1059650812255381212, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -25 + objectReference: {fileID: 0} + - target: {fileID: 1267700265221531591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1267700265221531591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1267700265221531591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1267700265221531591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1267700265221531591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1267700265221531591, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1386833305572118779, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1623848246512314519, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1623848246512314519, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1623848246512314519, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1623848246512314519, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1623848246512314519, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1623848246512314519, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635544877581240662, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635544877581240662, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635544877581240662, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 66.4 + objectReference: {fileID: 0} + - target: {fileID: 1635544877581240662, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 115.600006 + objectReference: {fileID: 0} + - target: {fileID: 1635544877581240662, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -21.5 + objectReference: {fileID: 0} + - target: {fileID: 1647101859318024536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1647101859318024536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1647101859318024536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 178.61 + objectReference: {fileID: 0} + - target: {fileID: 1647101859318024536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 235.655 + objectReference: {fileID: 0} + - target: {fileID: 1647101859318024536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 1937044126227309791, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2222053490693558109, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2222053490693558109, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2222053490693558109, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2222053490693558109, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2222053490693558109, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2222053490693558109, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2276092046057847473, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2329681667901246021, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2694093827654810255, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2694093827654810255, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2694093827654810255, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 45.14 + objectReference: {fileID: 0} + - target: {fileID: 2694093827654810255, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 49 + objectReference: {fileID: 0} + - target: {fileID: 2694093827654810255, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 22.57 + objectReference: {fileID: 0} + - target: {fileID: 2694093827654810255, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -24.5 + objectReference: {fileID: 0} + - target: {fileID: 2768372980201281944, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2768372980201281944, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2768372980201281944, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2768372980201281944, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2768372980201281944, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923647488588574535, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923647488588574535, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923647488588574535, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923647488588574535, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923647488588574535, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3071485159024250861, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3071485159024250861, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3071485159024250861, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3071485159024250861, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3071485159024250861, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3071485159024250861, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3492020160202739040, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3492020160202739040, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3492020160202739040, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3492020160202739040, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3492020160202739040, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3492020160202739040, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3564139812230223400, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3564139812230223400, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3564139812230223400, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 44.78 + objectReference: {fileID: 0} + - target: {fileID: 3564139812230223400, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3564139812230223400, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 22.39 + objectReference: {fileID: 0} + - target: {fileID: 3564139812230223400, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -25 + objectReference: {fileID: 0} + - target: {fileID: 3569298798434135124, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3569298798434135124, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3569298798434135124, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3569298798434135124, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3569298798434135124, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3569298798434135124, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3765492434853619426, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3765492434853619426, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3765492434853619426, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 116.35 + objectReference: {fileID: 0} + - target: {fileID: 3765492434853619426, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 58.175 + objectReference: {fileID: 0} + - target: {fileID: 3765492434853619426, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 3819522126440076046, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3819522126440076046, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3819522126440076046, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3819522126440076046, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3819522126440076046, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3819522126440076046, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881877521820890268, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881877521820890268, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881877521820890268, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881877521820890268, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881877521820890268, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925858938396269536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925858938396269536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925858938396269536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925858938396269536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925858938396269536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925858938396269536, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4344927872497180903, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4344927872497180903, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4344927872497180903, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4344927872497180903, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4344927872497180903, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4344927872497180903, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4750390231123831008, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4750390231123831008, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4750390231123831008, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4750390231123831008, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4750390231123831008, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5160925206641641752, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5160925206641641752, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5160925206641641752, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5160925206641641752, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5160925206641641752, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5160925206641641752, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5212022675791985057, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5282947747273609297, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5282947747273609297, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5282947747273609297, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5282947747273609297, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5282947747273609297, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5282947747273609297, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5669155925958102218, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5669155925958102218, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5669155925958102218, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5669155925958102218, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5669155925958102218, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5669155925958102218, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760169274063006291, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5851667535313492392, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5851667535313492392, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5851667535313492392, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 66.009995 + objectReference: {fileID: 0} + - target: {fileID: 5851667535313492392, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 40.004997 + objectReference: {fileID: 0} + - target: {fileID: 5851667535313492392, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -21.5 + objectReference: {fileID: 0} + - target: {fileID: 6599880288365032549, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6599880288365032549, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6599880288365032549, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6599880288365032549, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6599880288365032549, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6599880288365032549, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6838253471355869082, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_Name + value: UiManager + objectReference: {fileID: 0} + - target: {fileID: 7056278010476136806, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7056278010476136806, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7056278010476136806, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7056278010476136806, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7056278010476136806, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7086296103491844919, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7086296103491844919, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7086296103491844919, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7086296103491844919, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7086296103491844919, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7086296103491844919, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7125113852259692313, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7125113852259692313, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7125113852259692313, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7125113852259692313, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7125113852259692313, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7125113852259692313, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7215551430567514289, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7215551430567514289, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7797694985026872176, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7797694985026872176, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7797694985026872176, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7797694985026872176, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7797694985026872176, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7797694985026872176, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8157537725835147310, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8157537725835147310, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8157537725835147310, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 66.4 + objectReference: {fileID: 0} + - target: {fileID: 8157537725835147310, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 40.2 + objectReference: {fileID: 0} + - target: {fileID: 8157537725835147310, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -21.5 + objectReference: {fileID: 0} + - target: {fileID: 8791806895220087988, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8791806895220087988, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8791806895220087988, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8791806895220087988, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8791806895220087988, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8791806895220087988, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8863896226978844747, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8863896226978844747, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8863896226978844747, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8863896226978844747, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 14906596fa615704fb8fa4ac3111fc3b, type: 3} --- !u!1 &1015166832 GameObject: m_ObjectHideFlags: 0 @@ -84301,3 +85242,4 @@ SceneRoots: - {fileID: 575217084} - {fileID: 7627145480117215977} - {fileID: 756009984} + - {fileID: 1013698577} diff --git a/Assets/_DDD/_ScriptAssets/Prefabs/UiManager.prefab b/Assets/_DDD/_ScriptAssets/Prefabs/UiManager.prefab index 076666769..9478c57fe 100644 --- a/Assets/_DDD/_ScriptAssets/Prefabs/UiManager.prefab +++ b/Assets/_DDD/_ScriptAssets/Prefabs/UiManager.prefab @@ -1373,15 +1373,15 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Padding: - m_Left: 14 + m_Left: 3 m_Right: 0 - m_Top: 12 + m_Top: 2 m_Bottom: 0 m_ChildAlignment: 0 m_StartCorner: 0 m_StartAxis: 0 - m_CellSize: {x: 132, y: 133} - m_Spacing: {x: -5, y: 5} + m_CellSize: {x: 151, y: 152} + m_Spacing: {x: -25, y: -16} m_Constraint: 0 m_ConstraintCount: 2 --- !u!114 &3584791728222390211 @@ -1453,15 +1453,15 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Padding: - m_Left: 125 + m_Left: 116 m_Right: 0 - m_Top: 5 + m_Top: -5 m_Bottom: 0 m_ChildAlignment: 0 m_StartCorner: 0 m_StartAxis: 0 - m_CellSize: {x: 132, y: 133} - m_Spacing: {x: -3, y: 7} + m_CellSize: {x: 151, y: 152} + m_Spacing: {x: -23, y: -13} m_Constraint: 1 m_ConstraintCount: 3 --- !u!1 &2280081284556110297 @@ -3714,15 +3714,15 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Padding: - m_Left: 58 + m_Left: 45 m_Right: 0 - m_Top: 5 + m_Top: -5 m_Bottom: 0 m_ChildAlignment: 0 m_StartCorner: 0 m_StartAxis: 0 - m_CellSize: {x: 132, y: 133} - m_Spacing: {x: -1, y: 0} + m_CellSize: {x: 151, y: 152} + m_Spacing: {x: -19, y: -18} m_Constraint: 1 m_ConstraintCount: 4 --- !u!1 &5774831677185062216 @@ -7224,6 +7224,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_005 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -7326,6 +7330,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_006 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8864952879369828923, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} propertyPath: m_Controller value: @@ -7902,6 +7910,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_006 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -8110,6 +8122,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_002 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -8678,6 +8694,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_002 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8864952879369828923, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} propertyPath: m_Controller value: @@ -8886,6 +8906,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -8988,6 +9012,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_005 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -9200,6 +9228,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_004 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8864952879369828923, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} propertyPath: m_Controller value: @@ -9306,6 +9338,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_007 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -9408,6 +9444,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_005 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8864952879369828923, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} propertyPath: m_Controller value: @@ -9514,6 +9554,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_004 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -11009,6 +11053,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_002 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -11425,6 +11473,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_001 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8864952879369828923, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} propertyPath: m_Controller value: @@ -11735,6 +11787,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_004 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -12137,6 +12193,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_003 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8864952879369828923, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} propertyPath: m_Controller value: @@ -12243,6 +12303,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_003 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -12835,6 +12899,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_007 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8864952879369828923, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} propertyPath: m_Controller value: @@ -13139,6 +13207,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_003 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -13241,6 +13313,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_001 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -13664,6 +13740,10 @@ PrefabInstance: propertyPath: m_Name value: ItemSlotUi_001 objectReference: {fileID: 0} + - target: {fileID: 8525017117390620210, guid: e349efbef7b74ce47af461f7985bfdc2, type: 3} + propertyPath: propertyValue + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemDetailView.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemDetailView.cs index eb15cde5c..dd4dfabff 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemDetailView.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemDetailView.cs @@ -41,8 +41,6 @@ private async void Start() _descriptionLabel.text = string.Empty; _cookwareImage.sprite = null; - ClearHashTags(); - _isInitialized.SetResult(true); } @@ -164,12 +162,12 @@ private void ClearHashTags() { foreach (Transform content in _tasteHashTagContent1) { - Destroy(content.gameObject); + Destroy(content?.gameObject); } foreach (Transform content in _tasteHashTagContent2) { - Destroy(content.gameObject); + Destroy(content?.gameObject); } } } diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuView.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuView.cs index 03b6eb698..c67ded6d4 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuView.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuView.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets; @@ -16,7 +17,7 @@ public class TodayMenuView : MonoBehaviour, IEventHandler, private void Start() { - Initialize(); + _ = Initialize(); } private void OnDestroy() @@ -25,11 +26,11 @@ private void OnDestroy() EventBus.Unregister(this); } - private async void Initialize() + private async Task Initialize() { _restaurantManagementSo = await AssetManager.LoadAsset(DataConstants.RestaurantManagementSo); Debug.Assert(_restaurantManagementSo != null, "_restaurantManagementSo != null"); - + foreach (Transform child in _todayFoodContent) { Destroy(child.gameObject);