public static void Refresh(bool delay, params UnityObject[] targets) { VariableMaterial.delay = delay; foreach (var target in targets) { var material = (Material)target; bool isFlat = material.shader != null && material.shader.name.Contains("#"); if (isFlat || VariableMaterial.IsBroken(material)) { VariableMaterial.Flatten(target); } } }
public static List <Material> GetAll() { var materials = File.GetAssets <Material>("*.mat"); var variableMaterials = new List <Material>(); foreach (var material in materials) { if (material.IsNull()) { continue; } string editorName = material.shader.GetVariable <string>("customEditor"); if (editorName.Contains("VariableMaterialEditor") || VariableMaterial.IsBroken(material)) { variableMaterials.Add(material); } } return(variableMaterials); }