예제 #1
0
        /// <summary>
        ///		Deseralizes the provided serialized timeline.
        /// </summary>
        public static Timeline Deserialize(string s_timeline)
        {
            Timeline timeline = new Timeline("");

            // Splits the data file into chapters.
            string[] s_Chapters = s_timeline.Split(CHAPTERSPACER);

            foreach (string s_Chapter in s_Chapters)
            {
                if (s_Chapter == "")
                {
                    continue;
                }

                // Splits the chapter into data pieces.
                string[] vars = s_Chapter.Split(EVENTSPACER);

                if (vars.Length == 0)
                {
                    continue;
                }

                // A new chapter is created.
                TimelineChapter chapter = new TimelineChapter(
                    int.Parse(vars[0]),
                    vars[1],
                    vars[2],
                    int.Parse(vars[3]));

                // Starts later to skip chapter fields.
                for (int i = 4; i < vars.Length; i++)
                {
                    // converts the var into a TimelineEvent
                    string s_event = vars[i];

                    if (s_event == "")
                    {
                        continue;
                    }

                    TimelineEventData timelineData = JsonUtility.FromJson <TimelineEventData>(s_event);
                    Type t = TimelineEventContainer.TypeOf(timelineData.Type);
                    timelineData = (TimelineEventData)JsonUtility.FromJson(s_event, t);

                    chapter.AddEvent(timelineData);
                }

                timeline.AddChapter(chapter);
            }

            return(timeline);
        }
예제 #2
0
 public void RemoveEvent(TimelineEventData data)
 {
     events.Remove(data.Id);
     UnityEngine.Debug.LogFormat("Removed Event (Id: {0}) of type {1}", data.Id.ToString(), data.Type.ToString());
 }
예제 #3
0
 public void UpdateEvent(TimelineEventData updatedData)
 {
     events[updatedData.Id] = updatedData;
     UnityEngine.Debug.LogFormat("Updated Event (Id: {0}) of type {1}", updatedData.Id.ToString(), updatedData.Type.ToString());
 }
예제 #4
0
 public void AddEvent(TimelineEventData newData)
 {
     events.Add(newData.Id, newData);
     UnityEngine.Debug.LogFormat("Added Event (Id: {0}) of type {1}", newData.Id.ToString(), newData.Type.ToString());
 }