using System.Collections.Generic; using System.Linq; using UnityEditorInternal; using UnityEngine; using UnityEngine.Timeline; namespace UnityEditor.Timeline { static class ObjectIdExtension { public static Object IdToObject(this ObjectId id) { #if UNITY_6000_3_OR_NEWER return EditorUtility.EntityIdToObject(id); #else return EditorUtility.InstanceIDToObject(id); #endif } #if UNITY_6000_3_OR_NEWER public static List GetNewSelection(ObjectId id, List allInstanceIDs, List selectedIDs, ObjectId lastClickedId, bool keepMultiSelection, bool useShiftAsActionKey, bool allowMultiSelection) { #if UNITY_6000_4_OR_NEWER return InternalEditorUtility.HandleMultiSelectionWithCurrentModifiers( id, allInstanceIDs.ConvertAll(i => (EntityId)i), selectedIDs.ConvertAll(i => (EntityId)i), lastClickedId, keepMultiSelection, allowMultiSelection, useShiftAsActionKey). ConvertAll(i => (ObjectId)i); #else return InternalEditorUtility.GetNewSelection(id, allInstanceIDs.ConvertAll(i => (EntityId)i), selectedIDs.ConvertAll(i => (EntityId)i), lastClickedId, keepMultiSelection, useShiftAsActionKey, allowMultiSelection) .ConvertAll(i => (ObjectId)i); #endif //UNITY_6000_4_OR_NEWER } #endif //UNITY_6000_3_OR_NEWER public static IEnumerable selectedIds { get { #if UNITY_6000_3_OR_NEWER return Selection.entityIds.Select(id => (ObjectId)id); #else return Selection.instanceIDs.Select(id => (ObjectId)id); #endif } } } }