public ObjectSelectionChangedEventArgs(ObjectSelectActionType selectActionType, List <GameObject> selectedObjects,
                                               ObjectDeselectActionType deselectActionType, List <GameObject> deselectedObjects)
        {
            _selectActionType = selectActionType;
            _selectedObjects  = new List <GameObject>();
            if (selectedObjects != null)
            {
                _selectedObjects = new List <GameObject>(selectedObjects);
            }

            _deselectActionType = deselectActionType;
            _deselectedObjects  = new List <GameObject>();
            if (_deselectedObjects != null)
            {
                _deselectedObjects = new List <GameObject>(deselectedObjects);
            }

            _gizmoType     = EditorGizmoSystem.Instance.ActiveGizmoType;
            _isGizmoActive = !EditorGizmoSystem.Instance.AreGizmosTurnedOff;
        }
        public static ObjectSelectionChangedEventArgs FromSnapshots(ObjectSelectActionType selectActionType, ObjectDeselectActionType deselectActionType,
                                                                    ObjectSelectionSnapshot preChangeSnapshot, ObjectSelectionSnapshot postChangeSnapshot)
        {
            List <GameObject> preDiff  = preChangeSnapshot.GetDiff(postChangeSnapshot);
            List <GameObject> postDiff = postChangeSnapshot.GetDiff(preChangeSnapshot);

            return(new ObjectSelectionChangedEventArgs(selectActionType, postDiff, deselectActionType, preDiff));
        }
 public ObjectDeselectEventArgs(ObjectDeselectActionType deselectActionType)
 {
     _deselectActionType = deselectActionType;
     _gizmoType          = EditorGizmoSystem.Instance.ActiveGizmoType;
     _isGizmoActive      = !EditorGizmoSystem.Instance.AreGizmosTurnedOff;
 }