public override void DoGUI(Rect rect) { using (ProfilerSample.Get()) { rect.yMin++; rect.xMin++; GUI.changed = false; GUI.Button(rect, lastContent, EditorStyles.label); if (!GUI.changed) { return; } var selectedObjects = GetSelectedObjectsAndCurrent(); var changeMode = AskChangeModeIfNecessary(selectedObjects, Preferences.IconAskMode.Value, "Change Icons", "Do you want to change children icons as well?"); switch (changeMode) { case ChildrenChangeMode.ObjectOnly: foreach (var obj in selectedObjects) { Undo.RegisterCompleteObjectUndo(obj, "Icon Changed"); } break; case ChildrenChangeMode.ObjectAndChildren: foreach (var obj in selectedObjects) { Undo.RegisterFullObjectHierarchyUndo(obj, "Icon Changed"); } break; } ReflectionHelper.ShowIconSelector(EnhancedHierarchy.CurrentGameObject, rect, true, icon => { foreach (var obj in selectedObjects) { switch (changeMode) { case ChildrenChangeMode.ObjectOnly: ReflectionHelper.SetObjectIcon(obj, icon); break; case ChildrenChangeMode.ObjectAndChildren: var transforms = obj.GetComponentsInChildren <Transform>(true); ReflectionHelper.SetObjectIcon(obj, icon); foreach (var transform in transforms) { ReflectionHelper.SetObjectIcon(transform.gameObject, icon); } break; } } }); } }
public override void DoGUI(Rect rect) { if (!EnhancedHierarchy.IsRepaintEvent || !EnhancedHierarchy.IsGameObject || !audioSource || Width <= 1f) { return; } using (ProfilerSample.Get()) { if (!icon) { icon = EditorGUIUtility.ObjectContent(null, typeof(AudioSource)).image; } rect.yMax -= 1f; rect.yMin += 1f; GUI.DrawTexture(rect, icon, ScaleMode.StretchToFill); } }
public override void DoGUI(Rect rect) { using (ProfilerSample.Get()) { rect.yMin++; rect.xMin++; GUI.changed = false; GUI.Button(rect, lastContent, EditorStyles.label); if (!GUI.changed) { return; } var affectedObjsList = GetSelectedObjectsAndCurrent(); var affectedObjsEnum = affectedObjsList.AsEnumerable(); var changeMode = AskChangeModeIfNecessary(affectedObjsList, Preferences.IconAskMode.Value, "Change Icons", "Do you want to change children icons as well?"); switch (changeMode) { case ChildrenChangeMode.ObjectAndChildren: affectedObjsEnum = affectedObjsEnum.SelectMany(go => go.GetComponentsInChildren <Transform>(true).Select(t => t.gameObject)); break; } affectedObjsEnum = affectedObjsEnum.Distinct(); var affectedObjsArray = affectedObjsEnum.ToArray(); foreach (var obj in affectedObjsArray) { Undo.RegisterCompleteObjectUndo(obj, "Icon Changed"); } Reflected.ShowIconSelector(affectedObjsArray, rect, true); } }