#if UNITY_EDITOR using System.Linq; using MonKey.Extensions; using UnityEditor; using UnityEngine; namespace MonKey.Editor { public static class DefaultValuesUtilities { /// /// Returns the active object from the selection /// /// public static Object DefaultActiveObject() { Object first = null; if (Selection.objects.Length > 0) first = Selection.activeObject; return first; } public static GameObject DefaultActiveGameObject() { GameObject first = null; if (Selection.gameObjects.Length > 0) first = Selection.activeGameObject; return first; } public static Transform DefaultActiveTransform() { Transform first = null; if (Selection.gameObjects.Length > 0) first = Selection.activeTransform; return first; } public static GameObject DefaultFirstGameObjectSelected() { if (MonkeyEditorUtils.OrderedSelectedGameObjects.Any()) return MonkeyEditorUtils.OrderedSelectedGameObjects.First(); return null; } public static Object DefaultFirstObjectSelected() { if (MonkeyEditorUtils.OrderedSelectedObjects.Any()) return MonkeyEditorUtils.OrderedSelectedObjects.First(); return null; } public static Transform DefaultFirstTransformSelected() { if (MonkeyEditorUtils.OrderedSelectedTransform.Any()) return MonkeyEditorUtils.OrderedSelectedTransform.First(); return null; } public static GameObject DefaultSecondGameObjectSelected() { if (MonkeyEditorUtils.OrderedSelectedGameObjects.Count() < 2) return null; return MonkeyEditorUtils.OrderedSelectedGameObjects.ElementAt(1); } public static Object DefaultSecondObjectSelected() { if (MonkeyEditorUtils.OrderedSelectedObjects.Count() < 2) return null; return MonkeyEditorUtils.OrderedSelectedObjects.ElementAt(1); } public static Transform DefaultSecondTransformSelected() { if (MonkeyEditorUtils.OrderedSelectedTransform.Count() < 2) return null; return MonkeyEditorUtils.OrderedSelectedTransform.ElementAt(1); } public static GameObject DefaultLastGameObjectSelected() { return MonkeyEditorUtils.OrderedSelectedGameObjects.Last(); } public static Object DefaultLastObjectSelected() { return MonkeyEditorUtils.OrderedSelectedObjects.Last(); } public static Transform DefaultLastTransformSelected() { return MonkeyEditorUtils.OrderedSelectedTransform.Last(); } public static Object[] DefaultAllObjectSelected() { return Selection.objects; } public static GameObject[] DefaultAllGameObjectSelected() { return Selection.gameObjects; } public static Transform[] DefaultAllTransformSelected() { return Selection.gameObjects.Convert(_ => _.transform).ToArray(); } public static Object[] DefaultAllObjectSelectedButFirst() { if (MonkeyEditorUtils.OrderedSelectedObjects.Count() <= 1) return null; return MonkeyEditorUtils.OrderedSelectedObjects.Skip(1).ToArray(); } public static GameObject[] DefaultAllGameObjectSelectedButFirst() { if (MonkeyEditorUtils.OrderedSelectedGameObjects.Count() <= 1) return null; return MonkeyEditorUtils.OrderedSelectedGameObjects.Skip(1).ToArray(); } public static Transform[] DefaultAllTransformSelectedButFirst() { if (MonkeyEditorUtils.OrderedSelectedTransform.Count() <= 1) return null; return MonkeyEditorUtils.OrderedSelectedTransform.Skip(1).ToArray(); } } } #endif