Compare commits

...

5 Commits

Author SHA1 Message Date
NTG_Lenovo
6f352858a3 Merge remote-tracking branch 'origin/develop' into feature/restaurant_management_ui 2025-07-31 19:09:37 +09:00
NTG_Lenovo
6feedab1e0 sprite atlas gitignore 추가 2025-07-31 19:06:42 +09:00
NTG_Lenovo
f1c03eea80 raw 폴더 최신화 2025-07-31 19:05:37 +09:00
NTG_Lenovo
d964eb647d 에셋 추가 2025-07-31 18:50:25 +09:00
NTG_Lenovo
6b7a1f5729 Ui 쉐이더 및 애니메이션 쉐이더 파라미터 에셋 추가 2025-07-31 17:33:30 +09:00
207 changed files with 9690 additions and 674 deletions

3
.gitignore vendored
View File

@ -97,4 +97,5 @@ packages-lock.json
#Assets/_Datas/Raw/
# 특정 atlas 파일 무시
#Assets/_Datas/Addressables/Sprites/Items.spriteatlasv2
# Unity SpriteAtlas auto-generated files
Assets/_DDD/_Addressables/Sprites/

View File

@ -15,6 +15,12 @@ MonoBehaviour:
m_GroupName: Group
m_GUID: 30e7f67fe9aaa7849a34c9b6e2bc53ae
m_SerializeEntries:
- m_GUID: 034ac52b4c3fe854193b7c9c2d353be5
m_Address: Foods
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 077fbb30d2367574db4211e2945acda0
m_Address: TodayMenuSlotUi
m_ReadOnly: 0
@ -32,8 +38,8 @@ MonoBehaviour:
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 13bbbe2f81166d44688a0e9f581b8a8a
m_Address: Foods
- m_GUID: 2007acba03804024a801aee30991e439
m_Address: Ingredients
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
@ -66,29 +72,17 @@ MonoBehaviour:
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 46f458d0dcf53304ebe8ae4c3b6e4453
m_Address: Drinks
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 47e757b9a170ab649af14c4d7b80ac41
m_Address: CreateRestaurantPlayerSo
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 58f31f9092125f740b7d78c711fc58b8
- m_GUID: 79f90744c9c7ada498ba1ee8c60272d3
m_Address: Common
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5d82394aa19c5c44eb2e4c888189ec51
m_Address: Ingredients
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 83afdd7c8e0232443a83b09a90d0d3b1
m_Address: InventorySlotUi
m_ReadOnly: 0
@ -100,8 +94,8 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 992ad55164428014d929f6d81e21f96f
m_Address: RestaurantManagementUi
- m_GUID: 91f41ed6ea0600f4abed98cf0bf53bc5
m_Address: Drinks
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
@ -117,6 +111,12 @@ MonoBehaviour:
m_SerializedLabels:
- Scene
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a6e29c94b45be18498c195333e651353
m_Address: RestaurantManagementUi
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c6d19267dabc844449cc778f2f03fb34
m_Address: SummerGrass01_SkeletonData
m_ReadOnly: 0

View File

@ -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("<size=12>Show Advanced Configuration</size>"), 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

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2634386595cc60d40ae4e46b9ae970c0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -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:

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 625ba2096e714466b6d44ccb456bd731
timeCreated: 1682058264

View File

@ -0,0 +1,3 @@
{
"name": "Assembly-GraphicMaterialOverride"
}

View File

@ -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

View File

@ -0,0 +1,131 @@
using UnityEngine;
using UnityEngine.UI;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
public abstract class BufferedMaterialModifier : MonoBehaviour, IMaterialModifier
{
private static readonly int Stencil = Shader.PropertyToID("_Stencil");
/// <summary>
/// Hold the last modified material, to be re-used if possible
/// </summary>
Material _bufferedMaterial;
/// <summary>
/// Holds the base material used to create _bufferedMaterial
/// </summary>
Material _bufferedMaterialSource;
/// <summary>
/// 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
/// </summary>
/// <param name="baseMaterial"></param>
/// <returns>A new material object, or the reset previous return value if possible</returns>
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;
}
/// <summary>
/// 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.
/// </summary>
/// <param name="baseMaterial">IMaterialModifier argument</param>
/// <param name="suffix">Suffix to append to the original material name</param>
/// <returns></returns>
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);
}
/// <summary>
/// Child class implement this class, modifying directly the buffered material
/// </summary>
/// <param name="modifiedMaterial"></param>
protected abstract void ModifyMaterial(Material modifiedMaterial);
/// <summary>
/// Destroy the buffered material
/// </summary>
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;
}
}
}

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 94c69a3c49225fd4e8fc7eb449623d14
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 6f6208cdf31d456cbbfb65574612dae0
timeCreated: 1681720611

View File

@ -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
}

View File

@ -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

View File

@ -0,0 +1,34 @@
namespace UnityEditor
{
/// <summary>
/// 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
/// </summary>
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();
}
}
}

View File

@ -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

View File

@ -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
{
/// <summary>
/// The scroll position in the modifiers ScrollView
/// Usually not needed, but good to have
/// </summary>
Vector2 _scrollPosition;
/// <summary>
/// A fake material used to create an inspector
/// </summary>
Material _editorMaterial;
Object[] _editorMaterialArray;
/// <summary>
/// The editor of the fake material
/// </summary>
MaterialEditor _editorMaterialEditor;
/// <summary>
/// Override the reset context menu to implement the reset function
/// Needed instead of "MonoBehavior.Reset" on GraphicMaterialOverride because we need to record an Undo
/// </summary>
[MenuItem("CONTEXT/GraphicMaterialOverride/Reset")]
static void ResetMaterialModifiers(MenuCommand b)
{
GraphicMaterialOverride materialOverride = (GraphicMaterialOverride)b.context;
if (!materialOverride) return;
List<IMaterialPropertyModifier> 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);
}
}
/// <summary>
/// Ask the Graphic component to reload the modified material
/// </summary>
[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;
}
/// <summary>
/// Ask the Graphic component to reload the modified material
/// </summary>
[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<Material>(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<Graphic>() == 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<IMaterialPropertyModifier> 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);
}
/// <summary>
/// Display all added modifiers and their value
/// </summary>
/// <param name="modifiers"></param>
void DisplayModifiers(List<IMaterialPropertyModifier> 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);
}
/// <summary>
/// Returns the heights of each modifiers as a list
/// </summary>
/// <param name="modifiers"> The modifiers to get the heights of</param>
/// <returns></returns>
List<float> GetModifiersHeights(List<IMaterialPropertyModifier> modifiers)
{
Object[] targetMat = _editorMaterialArray;
return modifiers.Select(m => m.PropertyName)
.Select(n => MaterialEditor.GetMaterialProperty(targetMat, n))
.Select(_editorMaterialEditor.GetPropertyHeight)
.ToList();
}
/// <summary>
/// Begin a vertical group, and call a draw function on each modifier
/// </summary>
/// <param name="modifiers">The modifiers to draw</param>
/// <param name="action">The draw function for a modifier property</param>
static void ForEachParameterVertical(
List<IMaterialPropertyModifier> modifiers,
Action<IMaterialPropertyModifier> 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;
/// <summary>
/// Draw a button that activate the context menu
/// </summary>
/// <param name="modifier"></param>
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);
}
/// <summary>
/// Draw a toggle to enable or disable the target modifier component
/// </summary>
/// <param name="modifier">The modifier component</param>
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();
}
/// <summary>
/// Draw the value field from the property modifier
/// </summary>
/// <param name="modifier">The target IMaterialPropertyModifier</param>
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);
}
}
/// <summary>
/// Draw the context menu for one modifier
/// </summary>
/// <param name="modifier"></param>
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();
}
/// <summary>
/// Reset a modifier object to the default material value and record an undo
/// </summary>
/// <param name="modifier"></param>
void ResetModifier(IMaterialPropertyModifier modifier)
{
Undo.RecordObject(modifier as Object, "Reset modifier component");
modifier.ResetPropertyToDefault();
PrefabUtility.RecordPrefabInstancePropertyModifications(modifier as Object);
}
/// <summary>
/// Delete the GameObject of a modifier and record an Undo
/// </summary>
/// <param name="modifier"></param>
void DeleteModifier(IMaterialPropertyModifier modifier)
{
Undo.DestroyObjectImmediate(modifier.gameObject);
}
/// <summary>
/// Set the active state of a modifier and its GameObject
/// Records an undo
/// </summary>
/// <param name="modifier"></param>
/// <param name="isActive"></param>
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);
}
/// <summary>
/// Try to draw a range field for a shader property
/// If the information cannot be found, draw a float property
/// </summary>
/// <param name="material">The material holding the shader property</param>
/// <param name="propertyIndex">The index of the shader property</param>
/// <param name="property">The serialized property in the modifier</param>
/// <param name="label">The label of the property</param>
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;
}
/// <summary>
/// Draw a color field for a shader property, hdr if required
/// If the information cannot be found, draw a color property
/// </summary>
/// <param name="material">The material holding the shader property</param>
/// <param name="property">The serialized property in the modifier</param>
/// <param name="isHdr">If the property should be drawn as HDR</param>
/// <param name="label">The label of the property</param>
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;
}
/// <summary>
/// Display a dropdown to select a modifier
/// Filters out modifiers that are already added
/// </summary>
/// <returns></returns>
PropertyEntry? DisplayCreationPopup(List<IMaterialPropertyModifier> modifiers, List<ShaderPropertyInfo> properties)
{
// Create a set to filter out modifiers that are already added
HashSet<string> namesAlreadyUsed = modifiers
.Select(p => p.DisplayName)
.ToHashSet();
List<PropertyEntry> 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;
}
/// <summary>
/// Create a new GraphicPropertyOverride in a new child GameObject
/// </summary>
/// <param name="parent">The transform of the GraphicMaterialOverride</param>
/// <param name="propertyInfo">The property to override</param>
/// <exception cref="ArgumentOutOfRangeException">thrown when ShaderPropertyType is invalid</exception>
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}");
}
/// <summary>
/// Try to get the material from the Graphic component
/// </summary>
/// <returns></returns>
Material GetTargetMaterial()
{
GraphicMaterialOverride graphicMaterialOverride = (GraphicMaterialOverride)target;
return graphicMaterialOverride.TryGetComponent(out Graphic graphic) ? graphic.material : null;
}
}
}

View File

@ -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

View File

@ -0,0 +1,33 @@
using UnityEditor;
using UnityEngine;
namespace Plugins.Animate_UI_Materials.Editor
{
using PropertyType = ShaderUtil.ShaderPropertyType;
/// <summary>
/// A special editor for Color properties
/// Retrieves the hdr flag from the property override
/// </summary>
[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(""));
}
}
}

View File

@ -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

View File

@ -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();
}
/// <summary>
/// Overridable method to draw the value property
/// Overriden by GraphicPropertyOverrideRange to display ranges
/// </summary>
protected virtual void DrawValueProperty(SerializedProperty property)
{
EditorGUILayout.PropertyField(property);
}
/// <summary>
/// Try to get the material of the associated Graphic object
/// </summary>
/// <returns>The material being overriden or null</returns>
protected Material GetTargetMaterial()
{
GraphicPropertyOverride animated = (GraphicPropertyOverride)target;
return animated.transform.parent.TryGetComponent(out Graphic graphic) ? graphic.material : null;
}
/// <summary>
/// Get the property type from the target object
/// </summary>
/// <returns></returns>
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"),
};
}
/// <summary>
/// Get the index inside the filtered dropdown
/// </summary>
/// <returns>The index, or -1 in case of invalid property</returns>
int GetPropertyIndexDropdown()
{
string propertyName = _propertyName.stringValue;
return GetPropertyNames()
.FindIndex(dropdownOptionName => dropdownOptionName == propertyName);
}
/// <summary>
/// Get the index of the property in the shade
/// </summary>
/// <returns>The index of the property or -1 in vase of invalid property</returns>
protected int GetPropertyIndex()
{
Material material = GetTargetMaterial();
string propertyName = _propertyName.stringValue;
return ShaderPropertyInfo.GetMaterialProperties(material)
.Find(p => p.name == propertyName)
?.index ??
-1;
}
/// <summary>
/// Get all matching properties from the shader
/// </summary>
/// <returns></returns>
List<string> GetPropertyNames()
{
Material material = GetTargetMaterial();
PropertyType type = GetPropertyType();
return ShaderPropertyInfo.GetMaterialProperties(material)
.Where(p => p.type == type)
.Select(p => p.name)
.ToList();
}
/// <summary>
/// Override the reset context menu to implement the reset function
/// Needed instead of "MonoBehavior.Reset" on GraphicMaterialOverride because Reset is called in other contexts
/// </summary>
[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);
}
}
}

View File

@ -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

View File

@ -0,0 +1,34 @@
using UnityEditor;
using UnityEngine;
namespace Plugins.Animate_UI_Materials.Editor
{
using PropertyType = ShaderUtil.ShaderPropertyType;
/// <summary>
/// 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
/// </summary>
[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(""));
}
}
}

View File

@ -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

View File

@ -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;
}
}
}
}

View File

@ -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

View File

@ -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
{
/// <summary>
/// The index of the property inside the shader
/// </summary>
public int index;
/// <summary>
/// The name of the property inside the shader
/// </summary>
public string name;
/// <summary>
/// The type of the property, as defined by ShaderUtil
/// </summary>
public PropertyType type;
/// <summary>
/// Get all properties from a shader, with their name, index, and type
/// </summary>
/// <param name="shader">The shader to get the properties from</param>
/// <param name="allowHidden">Include properties marked as hidden and _MainTex</param>
/// <returns></returns>
public static List<ShaderPropertyInfo> GetShaderProperties(Shader shader, bool allowHidden = false)
{
List<ShaderPropertyInfo> properties = new List<ShaderPropertyInfo>();
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;
}
/// <summary>
/// Get all properties from a material, with their name, index, and type
/// </summary>
/// <param name="material">The material to get the properties from</param>
/// <param name="allowHidden">Include properties marked as hidden and _MainTex</param>
/// <returns></returns>
public static List<ShaderPropertyInfo> GetMaterialProperties(Material material, bool allowHidden = false)
{
if (!material) return new List<ShaderPropertyInfo>();
return GetShaderProperties(material.shader, allowHidden);
}
}
}

View File

@ -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

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d7ba558eff1e4d3189ce4b8dc9cd46cf
timeCreated: 1701272938

View File

@ -0,0 +1,3 @@
{
"reference": "GUID:343deaaf83e0cee4ca978e7df0b80d21"
}

View File

@ -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

View File

@ -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<string> 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;
}
}
}

View File

@ -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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bc85c94df8771d44788e610e60a1958f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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
}
}
}

View File

@ -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

View File

@ -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}

View File

@ -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

BIN
Assets/Plugins/Animate UI Materials/Examples/Texture 1.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -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

BIN
Assets/Plugins/Animate UI Materials/Examples/Texture 2.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -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

View File

@ -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: []

View File

@ -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

View File

@ -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
{
/// <summary>
/// Recreate the modified material using each active IMaterialPropertyModifier on this GameObject or its children
/// </summary>
public void SetMaterialDirty()
{
if (TryGetComponent(out Graphic graphic))
{
graphic.SetMaterialDirty();
}
}
/// <summary>
/// A buffer list to accelerate GetComponents requests
/// </summary>
[NonSerialized] List<IMaterialPropertyModifier> _modifiers;
/// <summary>
/// Retrieves all enabled IMaterialPropertyModifiers belonging to direct children
/// </summary>
/// <returns>An iterator over all enabled modifiers, avoid storing this value</returns>
public IEnumerable<IMaterialPropertyModifier> GetModifiers(bool includeInactive = false)
{
// Ensure the buffer list is available
_modifiers ??= new List<IMaterialPropertyModifier>();
// 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();
/// <summary>
/// Called by Graphic using the IMaterialModifier interface through the parent class
/// Modifies the buffered material to match all children component specifications
/// </summary>
/// <param name="modifiedMaterial">A copy of the Graphic base material, buffered for reuse</param>
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);
}
}
}
}
}

View File

@ -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

View File

@ -0,0 +1,56 @@
using UnityEngine;
using UnityEngine.UI;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
[ExecuteAlways]
[AddComponentMenu("UI/Animate UI Material/GraphicMaterialReplacer")]
public class GraphicMaterialReplacer : MonoBehaviour, IMaterialModifier
{
[SerializeField] Material material;
public Material Material
{
get => material;
set {
material = value;
SetMaterialDirty();
}
}
/// <summary>
/// Request Graphic to regenerate materials
/// </summary>
void SetMaterialDirty()
{
if (TryGetComponent(out Graphic graphic))
{
graphic.SetMaterialDirty();
}
}
// On enable and disable, update the target graphic
void OnEnable() => SetMaterialDirty();
void OnDisable() => SetMaterialDirty();
/// <summary>
/// From IMaterialModifier
/// Receives the current material before display, and returns another material if enabled
/// Here, simply sends the "material" field if enabled
/// </summary>
/// <param name="baseMaterial"></param>
/// <returns>A new material object</returns>
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;
}
}
}

View File

@ -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

View File

@ -0,0 +1,200 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
[ExecuteAlways]
public abstract class GraphicPropertyOverride : MonoBehaviour, IMaterialPropertyModifier
{
/// <summary>
/// The name of the shader property, serialized
/// </summary>
[SerializeField] protected string propertyName;
public virtual string DisplayName => propertyName;
/// <summary>
/// The id of the shader property
/// </summary>
/// <remarks> Should not be serialized, as it can change between game runs</remarks>
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
/// <summary>
/// On editor change, mark as dirty
/// </summary>
void OnValidate()
{
SetMaterialDirty(true);
}
#endif
/// <summary>
/// Try to retrieve and apply the default property value
/// If the source material cannot be found, reset to sensible defaults
/// </summary>
public abstract void ResetPropertyToDefault();
/// <summary>
/// Set the material as dirty
/// ApplyModifiedProperty will be called by the parent GraphicMaterialProperty
/// </summary>
/// <param name="renewId">If the GraphicPropertyOverride should try to get the shader property id, just to be safe</param>
public void SetMaterialDirty(bool renewId = false)
{
if (renewId || PropertyId == 0) PropertyId = Shader.PropertyToID(propertyName);
GraphicMaterialOverride parent = ParentOverride;
if (parent) parent.SetMaterialDirty();
}
/// <summary>
/// Try to apply the GraphicPropertyOverride property to the material
/// Does not create a copy, only feed material instances to this
/// </summary>
/// <param name="material">The material to modify</param>
public abstract void ApplyModifiedProperty(Material material);
/// <summary>
/// The name of the shader property to override
/// Can be invalid if the shader has changed, or if the component was not setup
/// </summary>
public string PropertyName
{
get => propertyName;
set
{
propertyName = value;
SetMaterialDirty(true);
}
}
/// <summary>
/// Try to get the Graphic component on the parent
/// </summary>
protected Graphic ParentGraphic => transform.parent ? transform.parent.GetComponent<Graphic>() : null;
/// <summary>
/// Try to get the GraphicMaterialOverride component on the parent
/// </summary>
protected GraphicMaterialOverride ParentOverride =>
transform.parent ? transform.parent.GetComponent<GraphicMaterialOverride>() : null;
}
/// <summary>
/// Template extension of GraphicPropertyOverride
/// Adds LateUpdate function to react to value changes
/// Compares value changes using EqualityComparer
/// Adds a SerializedField of type T
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract class GraphicPropertyOverride<T> : GraphicPropertyOverride
{
/// <summary>
/// The serialized value, modified by the inspector or the animator
/// </summary>
[SerializeField] protected T propertyValue;
/// <summary>
/// The last known value, init the the type default (0, null, ...)
/// Used to check for changes
/// NonSerialized to prevent unity from serializing this
/// </summary>
[NonSerialized] T _previousValue;
/// <summary>
/// If _previousValue was set since last construction
/// </summary>
[NonSerialized] bool _previousValueIsInit;
/// <summary>
/// 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
/// </summary>
void LateUpdate()
{
// If a previous value was recorded
// And it perfectly matches the current value
// Then ignore this update
if (_previousValueIsInit && EqualityComparer<T>.Default.Equals(propertyValue, _previousValue)) return;
_previousValueIsInit = true;
_previousValue = propertyValue;
SetMaterialDirty();
}
/// <summary>
/// Called by the animator system when a value is modified
/// </summary>
public void OnDidApplyAnimationProperties()
{
_previousValueIsInit = true;
_previousValue = propertyValue;
SetMaterialDirty();
}
/// <summary>
/// The value of the overriding property
/// Will react correctly when changed
/// </summary>
public T PropertyValue
{
get => propertyValue;
set
{
_previousValueIsInit = true;
_previousValue = propertyValue = value;
SetMaterialDirty();
}
}
/// <summary>
/// Try to retrieve and apply the default property value
/// If the source material cannot be found, reset to sensible defaults
/// </summary>
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;
}
/// <summary>
/// Retrieve the default property value from the source material
/// </summary>
/// <param name="material">The source material</param>
/// <param name="defaultValue">The value from the material</param>
/// <returns>True if the value could be retrieved</returns>
public abstract bool GetDefaultValue(Material material, out T defaultValue);
}
}

View File

@ -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

View File

@ -0,0 +1,41 @@
using UnityEngine;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
[AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideColor")]
public class GraphicPropertyOverrideColor : GraphicPropertyOverride<Color>
{
#if UNITY_EDITOR
/// <summary>
/// A flag for the editor to draw the color field as HDR
/// </summary>
public bool isHDR;
#endif
/// <summary>
/// Apply the modified property to the material
/// </summary>
/// <param name="material"></param>
public override void ApplyModifiedProperty(Material material)
{
material.SetColor(PropertyId, propertyValue);
}
/// <summary>
/// Retrieve the default Color value from the source material
/// </summary>
/// <param name="material">The source material</param>
/// <param name="defaultValue">The Color value from the material</param>
/// <returns>True if the value could be retrieved</returns>
public override bool GetDefaultValue(Material material, out Color defaultValue)
{
bool hasProperty = material.HasColor(PropertyId);
defaultValue = hasProperty ? material.GetColor(PropertyId) : default;
return hasProperty;
}
}
}

View File

@ -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

View File

@ -0,0 +1,36 @@
using UnityEngine;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
[AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideFloat")]
public class GraphicPropertyOverrideFloat : GraphicPropertyOverride<float>
{
/// <summary>
/// Apply the modified property to the material
/// </summary>
/// <param name="material"></param>
public override void ApplyModifiedProperty(Material material)
{
material.SetFloat(PropertyId, propertyValue);
}
/// <summary>
/// Retrieve the default float value from the source material
/// </summary>
/// <param name="material">The source material</param>
/// <param name="defaultValue">The float value from the material</param>
/// <returns>True if the value could be retrieved</returns>
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;
}
}
}

View File

@ -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

View File

@ -0,0 +1,36 @@
using UnityEngine;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
[AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideInt")]
public class GraphicPropertyOverrideInt : GraphicPropertyOverride<int>
{
/// <summary>
/// Apply the modified property to the material
/// </summary>
/// <param name="material"></param>
public override void ApplyModifiedProperty(Material material)
{
material.SetInteger(PropertyId, propertyValue);
}
/// <summary>
/// Retrieve the default int value from the source material
/// </summary>
/// <param name="material">The source material</param>
/// <param name="defaultValue">The int value from the material</param>
/// <returns>True if the value could be retrieved</returns>
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;
}
}
}

View File

@ -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

View File

@ -0,0 +1,36 @@
using UnityEngine;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
[AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideRange")]
public class GraphicPropertyOverrideRange : GraphicPropertyOverride<float>
{
/// <summary>
/// Apply the modified property to the material
/// </summary>
/// <param name="material"></param>
public override void ApplyModifiedProperty(Material material)
{
material.SetFloat(PropertyId, propertyValue);
}
/// <summary>
/// Retrieve the default float value from the source material
/// </summary>
/// <param name="material">The source material</param>
/// <param name="defaultValue">The float value from the material</param>
/// <returns>True if the value could be retrieved</returns>
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;
}
}
}

View File

@ -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

View File

@ -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);
}
}
/// <summary>
/// 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
/// </summary>
[AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideScaleAndOffset")]
public class GraphicPropertyOverrideScaleAndOffset : GraphicPropertyOverride<TextureScaleOffset>
{
public override string DisplayName => $"{propertyName} Scale Offset";
/// <summary>
/// Apply the modified property to the material
/// </summary>
/// <param name="material"></param>
public override void ApplyModifiedProperty(Material material)
{
material.SetTextureOffset(PropertyId, propertyValue.Offset);
material.SetTextureScale(PropertyId, propertyValue.Scale);
material.SetTexture(PropertyId, propertyValue.Texture);
}
/// <summary>
/// Retrieve the default Texture value from the source material
/// </summary>
/// <param name="material">The source material</param>
/// <param name="defaultValue">The Texture value from the material</param>
/// <returns>True if the value could be retrieved</returns>
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;
}
}
}

View File

@ -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

View File

@ -0,0 +1,36 @@
using UnityEngine;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
[AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideTexture")]
public class GraphicPropertyOverrideTexture : GraphicPropertyOverride<Texture>
{
/// <summary>
/// Apply the modified property to the material
/// </summary>
/// <param name="material"></param>
public override void ApplyModifiedProperty(Material material)
{
material.SetTexture(PropertyId, propertyValue);
}
/// <summary>
/// Retrieve the default Texture value from the source material
/// </summary>
/// <param name="material">The source material</param>
/// <param name="defaultValue">The Texture value from the material</param>
/// <returns>True if the value could be retrieved</returns>
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;
}
}
}

View File

@ -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

View File

@ -0,0 +1,36 @@
using UnityEngine;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// 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
/// </summary>
[AddComponentMenu("UI/Animate UI Material/GraphicPropertyOverrideVector")]
public class GraphicPropertyOverrideVector : GraphicPropertyOverride<Vector4>
{
/// <summary>
/// Apply the modified property to the material
/// </summary>
/// <param name="material"></param>
public override void ApplyModifiedProperty(Material material)
{
material.SetVector(PropertyId, propertyValue);
}
/// <summary>
/// Retrieve the default Vector value from the source material
/// </summary>
/// <param name="material">The source material</param>
/// <param name="defaultValue">The Vector value from the material</param>
/// <returns>True if the value could be retrieved</returns>
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;
}
}
}

View File

@ -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

View File

@ -0,0 +1,39 @@
using UnityEngine;
namespace Plugins.Animate_UI_Materials
{
public interface IMaterialPropertyModifier
{
/// <summary>
/// The name of the shader property that the modifier affects
/// </summary>
string PropertyName { get; }
/// <summary>
/// The display name of the modifier component for the editor
/// </summary>
string DisplayName { get; }
/// <summary>
/// The "enabled" value of the modifier component
/// </summary>
bool enabled { get; set; }
/// <summary>
/// The "gameObject" value of the modifier component
/// </summary>
GameObject gameObject { get; }
/// <summary>
/// Apply the modified property to the material
/// </summary>
/// <param name="material"></param>
void ApplyModifiedProperty(Material material);
/// <summary>
/// Try to retrieve and apply the default property value
/// If the source material cannot be found, reset to sensible defaults
/// </summary>
void ResetPropertyToDefault();
}
}

View File

@ -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

View File

@ -42,6 +42,7 @@ MonoBehaviour:
- andywiecko.BurstTriangulator
- Assembly-CSharp
- Assembly-CSharp-firstpass
- Assembly-GraphicMaterialOverride
- AstarPathfindingProject
- Autodesk.Fbx
- Autodesk.Fbx.BuildTestAssets

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

Binary file not shown.

View File

@ -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: 72, y: 72, z: 72, w: 72}
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: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: ef578a3fe05e5c144a45e8d84806fadb
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: 72, y: 72, z: 72, w: 72}
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: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d49b22a0c9b782343b8967596b590276
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,373 @@
%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: BlackOutlineUi
m_Shader: {fileID: 4800000, guid: e320962886da01749b5c68627fde4db9, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- GRADIENT2COL_ON
- OUTBASE8DIR_ON
- OUTBASE_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: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _FadeTex:
m_Texture: {fileID: 2800000, guid: b2ae57e82cd4b4d4ebfa9986f7c77c83, 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: b2ae57e82cd4b4d4ebfa9986f7c77c83, 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: 1
- _FadeBurnTransition: 0.01
- _FadeBurnWidth: 0
- _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: 5
- _GradBoostY: 0.1
- _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: 50
- _OutlineTexRotation: 136
- _OutlineTexRotationSpeed: 0
- _OutlineTexXSpeed: 6.9
- _OutlineTexYSpeed: 10
- _OutlineThickness: 1
- _OutlineWidth: 0.2
- _OverlayBlend: 1
- _OverlayGlow: 1
- _OverlayTextureScrollXSpeed: 0
- _OverlayTextureScrollYSpeed: 0
- _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.88
- _ShineRotate: 0.72
- _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: 0, g: 0, b: 0, 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: 1, 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: 1, 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: 0, g: 0, b: 0, 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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c1b4e19defb7dc0439fba92a9ed33b93
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,373 @@
%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
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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 62523c9155dcc8c4696b91b10c7ef4dc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -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

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More