예제 #1
0
        private static List <UnityEngine.Object> CollectUsedAssetsForObjectPath(USTimelineObjectPath timelineObjectPath)
        {
            var usedAssets = new List <UnityEngine.Object>();

            foreach (var splineKeyframe in timelineObjectPath.Keyframes)
            {
                usedAssets.Add(splineKeyframe);
            }

            return(usedAssets);
        }
예제 #2
0
        public static void ProcessObjectPathTimeline(USTimelineObjectPath objectPathTimeline)
        {
            var keyframes = new List <SplineKeyframe>();

            foreach (var keyframe in objectPathTimeline.Keyframes)
            {
                keyframes.Add(Instantiate(keyframe) as SplineKeyframe);
            }

            objectPathTimeline.SetKeyframes(keyframes);
        }
예제 #3
0
 private void Start()
 {
     USTimelineContainer[] array = this.TimelineContainers;
     for (int i = 0; i < array.Length; i++)
     {
         USTimelineContainer uSTimelineContainer = array[i];
         if (uSTimelineContainer)
         {
             USTimelineBase[] timelines = uSTimelineContainer.Timelines;
             for (int j = 0; j < timelines.Length; j++)
             {
                 USTimelineBase  uSTimelineBase  = timelines[j];
                 USTimelineEvent uSTimelineEvent = uSTimelineBase as USTimelineEvent;
                 if (uSTimelineEvent)
                 {
                     USEventBase[] events = uSTimelineEvent.Events;
                     for (int k = 0; k < events.Length; k++)
                     {
                         USEventBase uSEventBase = events[k];
                         uSEventBase.FixupAdditionalObjects();
                     }
                 }
                 USTimelineObserver uSTimelineObserver = uSTimelineBase as USTimelineObserver;
                 if (uSTimelineObserver)
                 {
                     foreach (USObserverKeyframe current in uSTimelineObserver.observerKeyframes)
                     {
                         if (!(current.cameraPath == string.Empty))
                         {
                             GameObject gameObject = GameObject.Find(current.cameraPath);
                             if (gameObject)
                             {
                                 Camera component = gameObject.GetComponent <Camera>();
                                 if (component)
                                 {
                                     current.KeyframeCamera = component;
                                 }
                             }
                         }
                     }
                 }
                 USTimelineObjectPath uSTimelineObjectPath = uSTimelineBase as USTimelineObjectPath;
                 if (uSTimelineObjectPath)
                 {
                     uSTimelineObjectPath.FixupAdditionalObjects();
                 }
             }
         }
     }
 }
예제 #4
0
        private static void HandlePrefabRecordObjectPath(USTimelineObjectPath timelineObjectPath, string relativeScriptableObjectPath)
        {
            EditorUtility.SetDirty(timelineObjectPath);

            timelineObjectPath.RecordAdditionalObjects();

            foreach (var splineKeyframe in timelineObjectPath.Keyframes)
            {
                if (!AssetDatabase.Contains(splineKeyframe.GetInstanceID()))
                {
                    var assetName = AssetDatabase.GenerateUniqueAssetPath(string.Format("{0}/{1}.asset", relativeScriptableObjectPath, splineKeyframe.GetInstanceID()));
                    AssetDatabase.CreateAsset(splineKeyframe, assetName);
                }

                EditorUtility.SetDirty(splineKeyframe);
            }
        }