更新
This commit is contained in:
@@ -38,7 +38,8 @@ namespace SpriteShadersUltimate
|
||||
Dictionary<string, int> shaderDictionary;
|
||||
Shader lastShader;
|
||||
bool newCategory; //Used to avoid drawing lines at the beginning of a new category.
|
||||
bool isDisabled; //Skip shaders.
|
||||
bool isEffectHidden; // Is the effect disabled or collapsed
|
||||
bool isEffectEnabled; // Is the effect enabled
|
||||
bool isHidden; //Used to skip hidden properties.
|
||||
bool skipGUI; //Skip GUI refresh after changing the shader.
|
||||
float shaderSpace; //Used to skip hidden properties.
|
||||
@@ -57,6 +58,7 @@ namespace SpriteShadersUltimate
|
||||
static Material[] materials;
|
||||
bool wasWarned;
|
||||
bool requiresFullRectMesh, requiresSpriteSheetFix, requiresInstancing, requiresTiling;
|
||||
HashSet<string> strippedTextureProperties = new HashSet<string>();
|
||||
|
||||
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
|
||||
{
|
||||
@@ -71,7 +73,7 @@ namespace SpriteShadersUltimate
|
||||
|
||||
//Properties:
|
||||
enabledShaders = new HashSet<string>();
|
||||
isDisabled = false;
|
||||
isEffectHidden = false;
|
||||
isHidden = false;
|
||||
EditorGUILayout.BeginVertical();
|
||||
for (int n = 0; n < properties.Length; n++)
|
||||
@@ -104,16 +106,38 @@ namespace SpriteShadersUltimate
|
||||
//Enable:
|
||||
if (enableProperties.Contains(prop.name))
|
||||
{
|
||||
isDisabled = DrawShaderToggle(materialEditor, prop);
|
||||
isEffectHidden = DrawShaderToggle(materialEditor, prop);
|
||||
isHidden = false;
|
||||
|
||||
continue; //Dont display shader toggle twice.
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isDisabled)
|
||||
if (isEffectHidden)
|
||||
{
|
||||
continue; //Skip disabled properties.
|
||||
// Strip textures
|
||||
if (isEffectEnabled == false && prop.propertyType == UnityEngine.Rendering.ShaderPropertyType.Texture)
|
||||
{
|
||||
// Cache as stripped texture property
|
||||
if (strippedTextureProperties.Contains(prop.name) == false)
|
||||
{
|
||||
strippedTextureProperties.Add(prop.name);
|
||||
}
|
||||
|
||||
// Remove texture to reduce build size
|
||||
prop.textureValue = null;
|
||||
}
|
||||
|
||||
continue; //Skip disabled properties
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add stripped textures back
|
||||
if (prop.propertyType == UnityEngine.Rendering.ShaderPropertyType.Texture && prop.textureValue == null && strippedTextureProperties.Contains(prop.name))
|
||||
{
|
||||
prop.textureValue = defaultMaterial.GetTexture(prop.name);
|
||||
strippedTextureProperties.Remove(prop.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,6 +425,10 @@ namespace SpriteShadersUltimate
|
||||
DisplayHint("- Fixes issues with <b>tiling</b> shaders.");
|
||||
DisplayHint("- This is only required on <b>sprite sheets</b>.");
|
||||
}
|
||||
if (prop.name == "_ResizableTexture" && prop.floatValue > 0.5f)
|
||||
{
|
||||
DisplayHint("- Fixes inconsistencies with some effects when the texture's <b>size</b> is changed.");
|
||||
}
|
||||
if (prop.name == "_PixelPerfectSpace" && prop.floatValue > 0.5f)
|
||||
{
|
||||
DisplayHint("- Snaps the <b>shader space</b> to the sprite's pixels.");
|
||||
@@ -1595,6 +1623,7 @@ namespace SpriteShadersUltimate
|
||||
}
|
||||
}
|
||||
|
||||
isEffectEnabled = isEnabled;
|
||||
return !isEnabled || isCollapsed;
|
||||
}
|
||||
|
||||
@@ -1916,7 +1945,7 @@ namespace SpriteShadersUltimate
|
||||
|
||||
public static bool IsKeyword(string propertyName)
|
||||
{
|
||||
if (propertyName.StartsWith("_Toggle") || propertyName.EndsWith("Toggle") || propertyName.EndsWith("Invert") || propertyName == "PixelSnap" || propertyName == "_ShaderSpace" || propertyName == "_ShaderFading" || propertyName == "_BakedMaterial" || propertyName == "_SmokeVertexSeed" || propertyName == "_SpriteSheetFix" || propertyName == "_UseUIAlphaClip" || propertyName == "_IsText" || propertyName == "_IsTextMeshPro" || propertyName == "_TilingFix" || propertyName == "_ForceAlpha" || propertyName == "_VertexTintFirst" || propertyName == "_PixelPerfectSpace" || propertyName == "_PixelPerfectUV" || propertyName == "_WindLocalWind" || propertyName == "_WindHighQualityNoise" || propertyName == "_WindIsParallax" || propertyName == "_WindFlip" || propertyName == "_SquishFlip")
|
||||
if (propertyName.StartsWith("_Toggle") || propertyName.EndsWith("Toggle") || propertyName.EndsWith("Invert") || propertyName == "PixelSnap" || propertyName == "_ShaderSpace" || propertyName == "_ShaderFading" || propertyName == "_BakedMaterial" || propertyName == "_SmokeVertexSeed" || propertyName == "_SpriteSheetFix" || propertyName == "_UseUIAlphaClip" || propertyName == "_IsText" || propertyName == "_IsTextMeshPro" || propertyName == "_ResizableTexture" || propertyName == "_TilingFix" || propertyName == "_ForceAlpha" || propertyName == "_VertexTintFirst" || propertyName == "_PixelPerfectSpace" || propertyName == "_PixelPerfectUV" || propertyName == "_WindLocalWind" || propertyName == "_WindHighQualityNoise" || propertyName == "_WindIsParallax" || propertyName == "_WindFlip" || propertyName == "_SquishFlip")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user