Exemple #1
0
        private void ProcessDuplicate(IUSHierarchyItem item)
        {
            var timelineContainer = item as USTimelineContainerHierarchyItem;

            if (timelineContainer != null)
            {
                var newTimelineContainer = USEditor.DuplicateTimelineContainer(timelineContainer.TimelineContainer, CurrentSequence);

                USUndoManager.RegisterCreatedObjectUndo(newTimelineContainer.gameObject, "Duplicate Timeline");

                AddNewTimelineContainer(newTimelineContainer);
            }

            var timeline = item as IUSTimelineHierarchyItem;

            if (timeline != null)
            {
                USUndoManager.RegisterCompleteObjectUndo(this, "Duplicate Timeline");
                USUndoManager.RegisterCompleteObjectUndo(USHierarchy, "Duplicate Timeline");

                var newTimeline = USEditor.DuplicateTimeline(timeline.BaseTimeline, timeline.BaseTimeline.TimelineContainer);
                USUndoManager.RegisterCreatedObjectUndo(newTimeline.gameObject, "Duplicate Timeline");

                var parent = USHierarchy.GetParentOf(item) as USTimelineContainerHierarchyItem;
                USUndoManager.RegisterCompleteObjectUndo(parent, "Duplicate Timeline");
                parent.AddTimeline(newTimeline);
            }
        }
Exemple #2
0
        private void ProcessDuplicateToSequence(IUSHierarchyItem item, USSequencer sequence)
        {
            var affectedObject    = default(Transform);
            var timelineContainer = item as USTimelineContainerHierarchyItem;
            var timeline          = item as IUSTimelineHierarchyItem;

            if (timelineContainer != null)
            {
                affectedObject = timelineContainer.TimelineContainer.AffectedObject;
            }
            if (timeline != null)
            {
                affectedObject = timeline.BaseTimeline.AffectedObject;
            }

            if (timelineContainer && USRuntimeUtility.HasTimelineContainerWithAffectedObject(sequence, affectedObject))
            {
                EditorUtility.DisplayDialog("Cannot continue", string.Format("The sequence {0} already has timelines for the object {1}", sequence.name, affectedObject.name), "Ok");
                return;
            }

            if (timelineContainer)
            {
                var newTimelineContainer = USEditor.DuplicateTimelineContainer(timelineContainer.TimelineContainer, sequence);

                USUndoManager.RegisterCreatedObjectUndo(newTimelineContainer.gameObject, "Duplicate Timeline");
            }

            if (timeline)
            {
                var newTimelineContainer = sequence.GetTimelineContainerFor(timeline.BaseTimeline.AffectedObject);
                if (newTimelineContainer == null)
                {
                    newTimelineContainer = sequence.CreateNewTimelineContainer(timeline.BaseTimeline.AffectedObject);
                    USUndoManager.RegisterCreatedObjectUndo(newTimelineContainer.gameObject, "Duplicate Timeline");
                }
                var newTimeline = USEditor.DuplicateTimeline(timeline.BaseTimeline, newTimelineContainer);

                USUndoManager.RegisterCreatedObjectUndo(newTimeline.gameObject, "Duplicate Timeline");
            }
        }