public override void OnInspectorGUI() { AlphaGroup alphaGroup = (AlphaGroup)target; RendererType newRend = (RendererType)EditorGUILayout.EnumFlagsField(new GUIContent("Renderer Type", "Type of renderers accepted."), alphaGroup.rendererType); if (newRend != alphaGroup.rendererType) { Undo.RecordObject(alphaGroup, "Changed renderer type."); alphaGroup.rendererType = newRend; } float newAlpha = EditorGUILayout.Slider(new GUIContent("Alpha", "Atual alpha value of the group."), alphaGroup.alpha, 0, 1); if (newAlpha != alphaGroup.alpha) { Undo.RecordObject(alphaGroup, "Changed alpha."); alphaGroup.alpha = newAlpha; } if (GUILayout.Button(new GUIContent("Reset max alphas"))) { alphaGroup._AtualizeMaxAlphas(); } EditorGUILayout.Separator(); bool useRemote = EditorGUILayout.Toggle( new GUIContent("Use Remote Sprites", "Mark to modify renderers that ins't children of this component. (Only for SpriteRenderers)"), alphaGroup.useRemoteObjects); if (useRemote != alphaGroup.useRemoteObjects) { Undo.RecordObject(alphaGroup, "Changed UseRemoteObjects."); alphaGroup.useRemoteObjects = useRemote; } if (alphaGroup.useRemoteObjects) { List <GameObject> remoteObjects = alphaGroup.remoteObjects; bool restartRenderers = false; for (int i = 0; i < remoteObjects.Count; i++) { EditorGUILayout.BeginHorizontal(); remoteObjects[i] = (GameObject)EditorGUILayout.ObjectField(remoteObjects[i], typeof(GameObject), true); bool delete = GUILayout.Button(new GUIContent("Delete", "saas")); if (delete) { remoteObjects.RemoveAt(i); restartRenderers = true; } else if (remoteObjects[i] != null) { if (!RendererGroupUtils.IsValid(remoteObjects[i])) { Debug.LogWarning("That GameObject is not valid for AlphaGroup remoteObjects."); remoteObjects.RemoveAt(i); } else { Undo.RecordObject(alphaGroup, "Added a remote object."); restartRenderers = true; } } EditorGUILayout.EndHorizontal(); } remoteObjects.RemoveAll(x => x == null); remoteObjects.Add(null); alphaGroup.remoteObjects = remoteObjects; if (restartRenderers) { Undo.RecordObject(alphaGroup, "Atualized renderers."); Debug.Log("Custom editor restart renderers."); alphaGroup.AtualizeRenderers(); } } }