#if UNITY_EDITOR using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEditor; namespace SpriteShadersUltimate { [CustomEditor(typeof(MaterialInstancerSSU))] [CanEditMultipleObjects] public class MaterialInstancerSSUEditor : Editor { public override void OnInspectorGUI() { GUIStyle labelStyle = new GUIStyle(GUI.skin.label); labelStyle.richText = true; GUI.enabled = false; EditorGUILayout.PropertyField(serializedObject.FindProperty("runtimeMaterial")); GUI.enabled = true; EditorGUILayout.Space(); EditorGUILayout.BeginVertical("Helpbox"); GUI.color = new Color(1, 1, 1, 0.7f); EditorGUILayout.LabelField("Will instantiate materials at runtime.", labelStyle); EditorGUILayout.LabelField("Fixes shaders requiring a unique material instance.", labelStyle); GUI.color = Color.white; EditorGUILayout.EndVertical(); //Check: MaterialInstancerSSU materialInstancer = (MaterialInstancerSSU)target; if(materialInstancer.GetComponent() == null && materialInstancer.GetComponent() == null) { EditorGUILayout.Space(); GUI.color = Color.red; EditorGUILayout.BeginVertical("Helpbox"); EditorGUILayout.LabelField("Requires a UI Graphic or Renderer with a material.", labelStyle); EditorGUILayout.EndVertical(); GUI.color = Color.white; } else { EditorGUILayout.Space(); GUI.color = Color.green; EditorGUILayout.BeginVertical("Helpbox"); EditorGUILayout.LabelField("Material will be instanced on Awake().", labelStyle); EditorGUILayout.EndVertical(); GUI.color = Color.white; } } } } #endif