瀏覽代碼

波次时间可视化

wgl 7 月之前
父節點
當前提交
5d240c11ed

+ 3 - 3
ActionTowerDefense/Assets/GameLevelEditor/GAAWCITY/TimelineUI/Prefabs/Components/SwimlaneContentItem.prefab

@@ -68,10 +68,10 @@ MonoBehaviour:
       m_Calls: []
   m_FontData:
     m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
-    m_FontSize: 14
-    m_FontStyle: 0
+    m_FontSize: 25
+    m_FontStyle: 1
     m_BestFit: 0
-    m_MinSize: 10
+    m_MinSize: 2
     m_MaxSize: 40
     m_Alignment: 4
     m_AlignByGeometry: 0

+ 4 - 6
ActionTowerDefense/Assets/GameLevelEditor/GAAWCITY/TimelineUI/Prefabs/Timeline.prefab

@@ -828,14 +828,12 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   timelineHeaderText: Events
-  startTime:
-    _dateTime: 10/6/2023 12:00:00 AM
-  endTime:
-    _dateTime: 10/7/2023 12:00:00 AM
+  timelineHeaderColor: {r: 0.1890656, g: 0.1702118, b: 0.7075472, a: 1}
+  startTime: 0
+  endTime: 0
   increments: 0
-  clockType: 0
+  maxMinute: 0
   timelineHeader: {fileID: 1678911144294203526}
-  timelineHeaderColor: {r: 0.1890656, g: 0.1702118, b: 0.7075472, a: 1}
   timelineLabelHeader: {fileID: 1678911143134075668}
   timelineSwimlanes: {fileID: 1678911143064751805}
   timelineHeaderItemPrefab: {fileID: 28781567838161935, guid: 72a954c8a77c1de40ac68ba04310b494, type: 3}

+ 4 - 32
ActionTowerDefense/Assets/GameLevelEditor/GAAWCITY/TimelineUI/Scripts/ButtonTest.cs

@@ -9,41 +9,13 @@ public class ButtonTest : MonoBehaviour
 {
     [SerializeField] TimelineController timelineController;
 
-    [Header("Events Controls")]
-    [SerializeField] TMP_InputField title;
-    [SerializeField] TMP_InputField month;
-    [SerializeField] TMP_InputField day;
-    [SerializeField] TMP_InputField year;
-    [SerializeField] TMP_InputField hour;
-    [SerializeField] TMP_InputField min;
-    [SerializeField] TMP_InputField eventLength;
-
-    [Header("Form Elements")]
-    [SerializeField] Transform swimLaneContainer;
-
-
-    public void AddSwimLane(string text, Color color)
+    public void AddSwimLane(GameMapTile t)
     {
-        timelineController.AddNewSwimlane(text,color);
+        timelineController.AddNewSwimlane(t);
     }
 
-    public void AddEventToTimeline(int value)
+    public void AddEventToTimeline(SpawnTime value, int index,Color color)
     {
-        var eventDate = new UnityDateTime();
-
-        eventDate.m_DateTime =
-            new System.DateTime(int.Parse(year.text), int.Parse(month.text), int.Parse(day.text),
-                                int.Parse(hour.text), int.Parse(min.text), 0, 0);
-
-
-        double length = double.Parse(eventLength.text);
-
-        int swimlaneIndex = value;
-
-        timelineController.AddEventToTimeline(swimlaneIndex, title.text, eventDate, length);
+        timelineController.AddEventToTimeline(value, index, color);
     }
-
-
-
-
 }

+ 34 - 34
ActionTowerDefense/Assets/GameLevelEditor/GAAWCITY/TimelineUI/Scripts/TimelineContentItem.cs

@@ -7,7 +7,7 @@ using UnityEngine.UI;
 
 namespace TimelineViewer
 {
-    public class TimelineContentItem : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
+    public class TimelineContentItem : MonoBehaviour
     {
         [HideInInspector]
         [SerializeField] Image swimLaneBackground; 
@@ -18,22 +18,22 @@ namespace TimelineViewer
         [SerializeField] Color defaultColor;
         [SerializeField] Color hoverColor;
 
-        TextMeshProUGUI textControl;
+        Text textControl;
 
         Vector2 origTextSizeDelta;
-        public void SetupTitle(string title)
+        public void SetupTitle(string title , Color color)
         {
-            swimLaneBackground.color = new Color(defaultColor.r, defaultColor.g, defaultColor.b, defaultColor.a);
-            textControl = GetComponentInChildren<TextMeshProUGUI>();
+            swimLaneBackground.color = color;
+            textControl = GetComponentInChildren<Text>();
             textControl.text = title;
 
-            deleteButton.onClick.AddListener(delegate { Destroy(gameObject); });
+            //deleteButton.onClick.AddListener(delegate { Destroy(gameObject); });
         }
 
-        private void OnDestroy()
-        {
-            deleteButton.onClick.RemoveAllListeners();
-        }
+        //private void OnDestroy()
+        //{
+        //    deleteButton.onClick.RemoveAllListeners();
+        //}
 
         public void AdjustLength(double multiplier)
         {
@@ -50,40 +50,40 @@ namespace TimelineViewer
             txtRect.anchoredPosition = new Vector2(offsetMin, bgRect.anchoredPosition.y);
 
 
-            var btnRect = deleteButton.GetComponent<RectTransform>();
-            btnRect.anchoredPosition = new Vector2(btnRect.anchoredPosition.x + (offsetMin * 2) + 80f, btnRect.anchoredPosition.y);
+            //var btnRect = deleteButton.GetComponent<RectTransform>();
+            //btnRect.anchoredPosition = new Vector2(btnRect.anchoredPosition.x + (offsetMin * 2) + 80f, btnRect.anchoredPosition.y);
 
             //rect.localPosition = new Vector3(offsetMin, rect.localPosition.y, rect.localPosition.z);
         }
 
-        public void OnPointerEnter(PointerEventData eventData)
-        {
+        //public void OnPointerEnter(PointerEventData eventData)
+        //{
 
 
-            var txtRect = textControl.GetComponent<RectTransform>();
-            origTextSizeDelta = txtRect.sizeDelta;
+        //    var txtRect = textControl.GetComponent<RectTransform>();
+        //    origTextSizeDelta = txtRect.sizeDelta;
 
-            if (txtRect.sizeDelta.x < 50f)
-            {
-                textControl.enableWordWrapping = false;
-                textControl.overflowMode = TextOverflowModes.Overflow;
-                txtRect.sizeDelta = new Vector2(100f, 65);
-            }
+        //    if (txtRect.sizeDelta.x < 50f)
+        //    {
+        //        textControl.enableWordWrapping = false;
+        //        textControl.overflowMode = TextOverflowModes.Overflow;
+        //        txtRect.sizeDelta = new Vector2(100f, 65);
+        //    }
 
-            swimLaneBackground.color = new Color(hoverColor.r, hoverColor.g, hoverColor.b, hoverColor.a);
-            deleteButton.gameObject.SetActive(true);
-        }
+        //    swimLaneBackground.color = new Color(hoverColor.r, hoverColor.g, hoverColor.b, hoverColor.a);
+        //    deleteButton.gameObject.SetActive(true);
+        //}
 
-        public void OnPointerExit(PointerEventData eventData)
-        {
-            textControl.enableWordWrapping = true;
-            textControl.overflowMode = TextOverflowModes.Ellipsis;
+        //public void OnPointerExit(PointerEventData eventData)
+        //{
+        //    textControl.enableWordWrapping = true;
+        //    textControl.overflowMode = TextOverflowModes.Ellipsis;
 
-            var txtRect = textControl.GetComponent<RectTransform>();
-            txtRect.sizeDelta = origTextSizeDelta;
+        //    var txtRect = textControl.GetComponent<RectTransform>();
+        //    txtRect.sizeDelta = origTextSizeDelta;
 
-            swimLaneBackground.color = new Color(defaultColor.r, defaultColor.g, defaultColor.b, defaultColor.a);
-            deleteButton.gameObject.SetActive(false);
-        }
+        //    swimLaneBackground.color = new Color(defaultColor.r, defaultColor.g, defaultColor.b, defaultColor.a);
+        //    deleteButton.gameObject.SetActive(false);
+        //}
     }
 }

+ 8 - 13
ActionTowerDefense/Assets/GameLevelEditor/GAAWCITY/TimelineUI/Scripts/TimelineController.cs

@@ -27,8 +27,8 @@ namespace TimelineViewer
         [SerializeField] string timelineHeaderText;
         [SerializeField] Color timelineHeaderColor;
 
-        [HideInInspector][SerializeField] UnityDateTime startTime;
-        [HideInInspector][SerializeField] UnityDateTime endTime;
+        [HideInInspector][SerializeField] int startTime;
+        [HideInInspector][SerializeField] int endTime;
 
         [Header("Clock Settings")]
         [SerializeField] int increments;
@@ -55,8 +55,8 @@ namespace TimelineViewer
 
         public int TimeCount { get; private set; }
 
-        public UnityDateTime ScenarioStartTime { get; private set; }
-        public UnityDateTime ScenarioEndTime { get; private set; }
+        public int ScenarioStartTime { get; private set; }
+        public int ScenarioEndTime { get; private set; }
 
         public TimelineSwimlaneController SwimLaneController { get { return timelineSwimlaneController; } }
 
@@ -91,19 +91,14 @@ namespace TimelineViewer
             
         //}
 
-        public void AddNewSwimlane(string swimlaneName,Color color)
+        public void AddNewSwimlane(GameMapTile t)
         {
-            timelineSwimlaneController.AddSwimlane(swimlaneName,color, swimLaneLabelContent, TimeCount, DailyIncements);
+            timelineSwimlaneController.AddSwimlane(t, swimLaneLabelContent, TimeCount, DailyIncements);
         }
 
-        public void AddEventToTimeline(string title, UnityDateTime eventDate, double timeToComplete)
+        public void AddEventToTimeline(SpawnTime value, int index, Color color)
         {
-            timelineSwimlaneController.AddTimelineItem(title, ScenarioStartTime, eventDate, timeToComplete);
-        }
-
-        public void AddEventToTimeline(int index, string title, UnityDateTime eventDate, double timeToComplete)
-        {
-            timelineSwimlaneController.AddTimelineItem(index, title, ScenarioStartTime, eventDate, timeToComplete);
+            timelineSwimlaneController.AddTimelineItem(value, index, increments, color);
         }
 
         public void ResetTimeline()

+ 6 - 6
ActionTowerDefense/Assets/GameLevelEditor/GAAWCITY/TimelineUI/Scripts/TimelineSwimlane.cs

@@ -33,19 +33,19 @@ namespace TimelineViewer
             return go.GetComponent<SwimlaneItemLabel>();
         }
 
-        public void AddTimelineItem(string title, double pos, double length)
+        public void AddTimelineItem(SpawnTime value, int increments, Color color)
         {
-            int posInt = (int)Math.Truncate(pos);
-            float posfl = (float)pos - posInt;
+            int posInt = value.startTime/increments;
+            float posfl = value.startTime - posInt;
 
             var rulerItem = swimLaneContent.transform.GetChild(posInt);
-
             var item = Instantiate(swimLaneContentItemPrefab, rulerItem, false);
-
             item.transform.localPosition = item.transform.localPosition + new Vector3(posfl * 100f, 0, 0);
+
             var timelineItem = item.GetComponent<TimelineContentItem>();
 
-            timelineItem.SetupTitle(title);
+            timelineItem.SetupTitle($"{value.num}",color);
+            float length = (float)(value.endTime - value.startTime) / increments;
             timelineItem.AdjustLength(length);
         }
 

+ 6 - 37
ActionTowerDefense/Assets/GameLevelEditor/GAAWCITY/TimelineUI/Scripts/TimelineSwimlaneController.cs

@@ -38,15 +38,17 @@ namespace TimelineViewer
         }
 
 
-        public void AddSwimlane(string laneName,Color color, Transform parent, int timeCount, int increments)
+        public void AddSwimlane(GameMapTile t, Transform parent, int timeCount, int increments)
         {
             dailyIncrements = increments;
 
             var swimLane = Instantiate(swimLanePrefab, transform, false);
 
             swimLaneTS = swimLane.GetComponent<TimelineSwimlane>();
-            SwimlaneItemLabel label = swimLaneTS.SetupSwimlane(laneName,color, parent, timeCount);
+            SwimlaneItemLabel label = swimLaneTS.SetupSwimlane(t.name,t.color, parent, timeCount);
+            t.index = swimlanes.Count;
             swimlanes.Add(swimlanes.Count, new SwimLaneBracket(label, swimLaneTS));
+
         }
 
         public void DeleteAllSwimlanes()
@@ -82,44 +84,11 @@ namespace TimelineViewer
             }
         }
 
-        public void AddTimelineItem(string title, UnityDateTime startTime, UnityDateTime eventDate, double hoursToComplete)
-        {
-            var pos = CalculatePositionFromDateTime(startTime, eventDate);
-            swimLaneTS.AddTimelineItem(title, pos, hoursToComplete);
-        }
-
-        public void AddTimelineItem(int index, string title, UnityDateTime startTime, UnityDateTime eventDate, double hoursToComplete)
+        public void AddTimelineItem(SpawnTime value, int index, int increments,Color color)
         {
             swimLaneTS = swimlanes[index].swimlane;
-            var pos = CalculatePositionFromDateTime(startTime, eventDate);
-            swimLaneTS.AddTimelineItem(title, pos, hoursToComplete);
+            swimLaneTS.AddTimelineItem(value, increments,color);
         }
 
-        private double CalculatePositionFromDateTime(UnityDateTime timelineStart, UnityDateTime mark)
-        {
-            double timeLocation = GetTimeDifference(timelineStart, mark);
-
-            return timeLocation;
-        }
-
-        private double GetTimeDifference(UnityDateTime timelineStart, UnityDateTime mark)
-        {
-            DateTime date1 = new DateTime(timelineStart.m_DateTime.Year, timelineStart.m_DateTime.Month, timelineStart.m_DateTime.Day, timelineStart.m_DateTime.Hour, timelineStart.m_DateTime.Minute, 0);
-            DateTime date2 = new DateTime(mark.m_DateTime.Year, mark.m_DateTime.Month, mark.m_DateTime.Day, mark.m_DateTime.Hour, mark.m_DateTime.Minute, 0);
-
-            TimeSpan difference = date2 - date1;
-
-            double adjustedHours = adjustHoursbyDailyIncrements(difference);
-
-            return adjustedHours;
-        }
-
-        private double adjustHoursbyDailyIncrements(TimeSpan difference)
-        {
-            int posInt = (int)Math.Truncate(difference.TotalHours);
-            float posfl = (float)difference.TotalHours - posInt;
-
-            return difference.TotalHours;
-        }
     }
 }

+ 16 - 1
ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/GameMapTile.cs

@@ -1,4 +1,14 @@
 using UnityEngine;
+using UnityEditor;
+using System;
+
+[Serializable]
+public struct SpawnTime
+{
+	public int startTime;
+	public int endTime;
+	public int num;
+}
 
 
 /// <summary> A tile definition. The map/grid consist of an array of these tiles. </summary>
@@ -33,7 +43,9 @@ public class GameMapTile
 	[GameMapTilePreview] public Color color = Color.white;
 	public Vector2 radius;
 	public string name;
-
+	public SpawnTime[] spawnTime;
+	[HideInInspector]public int index = -1;
+	[HideInInspector]public bool hasOut = false;
 
 	// ----------------------------------------------------------------------------------------------------------------
 
@@ -47,6 +59,9 @@ public class GameMapTile
 		t.color = color;
 		t.radius = radius;
 		t.name = name;
+		t.spawnTime = spawnTime;
+		t.index = index;
+		t.hasOut = hasOut;
 	}
 
 	// ----------------------------------------------------------------------------------------------------------------

+ 18 - 1
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Scripts/Main.cs

@@ -119,6 +119,7 @@ public class Main : MonoBehaviour
 		// if you do use layers then you should also read data from map.layers[].grid[] while also still using map.grid[] as layer-0
 		// to make it easier to read from these two sources of data you can simply use map.LayerCount and map.GetLayerData
 
+		List<GameMapTile> ts = new();
 		for (int i = 0; i < map.LayerCount; i++)
 		{
 			int[] grid = map.GetlayerData(i);
@@ -146,7 +147,18 @@ public class Main : MonoBehaviour
 							break;
 					}
 					if (ren == null) continue;
-					buttonTest.AddSwimLane(t.name, t.color);
+                    if (!t.hasOut)
+                    {
+						t.hasOut = true;
+						ts.Add(t);
+						buttonTest.AddSwimLane(t);
+						for (int j = 0; j < t.spawnTime.Length; j++)
+						{
+							buttonTest.AddEventToTimeline(t.spawnTime[j], t.index, t.color);
+						}
+					}
+
+					
 					ren.color = t.color;
 					ren.transform.localScale = new Vector3(tileSize / ren.sprite.rect.width, tileSize / ren.sprite.rect.height, 1f);
 					ren.transform.localPosition = new Vector3(x * sz + offsX, y * sz + offsY, 0f);
@@ -158,6 +170,11 @@ public class Main : MonoBehaviour
 				}
 			}
 		}
+		for(int i = 0; i < ts.Count; i++)
+        {
+			ts[i].hasOut = false;
+			ts[i].index = -1;
+        }
 	}
 
 	#endregion

+ 69 - 0
ActionTowerDefense/Assets/GameLevelEditor/tiles.asset

@@ -21,6 +21,9 @@ MonoBehaviour:
     color: {r: 0.17626214, g: 1, b: 0, a: 1}
     radius: {x: 0, y: 0}
     name: "\u9632\u5FA1\u5854"
+    spawnTime: []
+    index: 1
+    hasOut: 0
   - id: 166
     sprite: {fileID: 21300000, guid: 65b0651ef19a49c4e9c6c4ff297c3d52, type: 3}
     _aid: -1
@@ -29,6 +32,9 @@ MonoBehaviour:
     color: {r: 1, g: 0, b: 0, a: 1}
     radius: {x: 0, y: 0}
     name: "\u654C\u65B9\u9632\u5FA1\u5854"
+    spawnTime: []
+    index: 2
+    hasOut: 0
   - id: 163
     sprite: {fileID: 21300000, guid: 01c1ca6a4fe22a94b91a3b2b90b5c88f, type: 3}
     _aid: -1
@@ -37,6 +43,12 @@ MonoBehaviour:
     color: {r: 1, g: 1, b: 1, a: 1}
     radius: {x: 1, y: 1}
     name: "\u5F13\u7BAD\u624B1"
+    spawnTime:
+    - startTime: 1
+      endTime: 5
+      num: 2
+    index: 4
+    hasOut: 0
   - id: 164
     sprite: {fileID: 21300000, guid: 43f59a03605a34d4abed7ed387066287, type: 3}
     _aid: -1
@@ -45,6 +57,9 @@ MonoBehaviour:
     color: {r: 1, g: 1, b: 1, a: 1}
     radius: {x: 1, y: 2}
     name: "\u6B66\u672F\u5BB6"
+    spawnTime: []
+    index: 5
+    hasOut: 0
   - id: 165
     sprite: {fileID: 21300000, guid: b371758afaed0994e9076c34d8dbac5f, type: 3}
     _aid: -1
@@ -53,6 +68,9 @@ MonoBehaviour:
     color: {r: 1, g: 1, b: 1, a: 1}
     radius: {x: 2, y: 1}
     name: "\u80D6\u5B50"
+    spawnTime: []
+    index: 0
+    hasOut: 0
   - id: 168
     sprite: {fileID: 21300000, guid: 01c1ca6a4fe22a94b91a3b2b90b5c88f, type: 3}
     _aid: -1
@@ -61,6 +79,9 @@ MonoBehaviour:
     color: {r: 0.1495924, g: 1, b: 0, a: 1}
     radius: {x: 2, y: 2}
     name: "\u5F13\u7BAD\u624B2"
+    spawnTime: []
+    index: 3
+    hasOut: 0
   autoTiles:
   - id: 1
     tiles:
@@ -72,6 +93,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 32
       sprite: {fileID: 21300086, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -80,6 +104,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 33
       sprite: {fileID: 21300092, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -88,6 +115,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 34
       sprite: {fileID: 21300084, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -96,6 +126,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 35
       sprite: {fileID: 21300088, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -104,6 +137,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 36
       sprite: {fileID: 21300008, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -112,6 +148,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 37
       sprite: {fileID: 21300090, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -120,6 +159,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 38
       sprite: {fileID: 21300010, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -128,6 +170,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 39
       sprite: {fileID: 21300004, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -136,6 +181,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 40
       sprite: {fileID: 21300082, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -144,6 +192,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 41
       sprite: {fileID: 21300076, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -152,6 +203,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 42
       sprite: {fileID: 21300080, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -160,6 +214,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 43
       sprite: {fileID: 21300000, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -168,6 +225,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 44
       sprite: {fileID: 21300078, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -176,6 +236,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 45
       sprite: {fileID: 21300002, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -184,6 +247,9 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
     - id: 46
       sprite: {fileID: 21300006, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
@@ -192,5 +258,8 @@ MonoBehaviour:
       color: {r: 1, g: 1, b: 1, a: 1}
       radius: {x: 0, y: 0}
       name: 
+      spawnTime: []
+      index: 0
+      hasOut: 0
   nextTileId: 169
   nextAutoTileId: 7

+ 13 - 11
ActionTowerDefense/Assets/Scenes/Editor.unity

@@ -2467,6 +2467,11 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 925068566}
   m_CullTransparentMesh: 1
+--- !u!224 &927210891 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 1678911142790933719, guid: ef1e41dbea8b2144b9e0b405402faeef, type: 3}
+  m_PrefabInstance: {fileID: 1590891959}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1 &929017986
 GameObject:
   m_ObjectHideFlags: 0
@@ -3618,14 +3623,6 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   timelineController: {fileID: 147472341}
-  title: {fileID: 1262402376}
-  month: {fileID: 1459196798}
-  day: {fileID: 2015170714}
-  year: {fileID: 1438171527}
-  hour: {fileID: 884713294}
-  min: {fileID: 177264931}
-  eventLength: {fileID: 1762124189}
-  swimLaneContainer: {fileID: 0}
 --- !u!1 &1262402375
 GameObject:
   m_ObjectHideFlags: 0
@@ -5404,7 +5401,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1678911143623422894, guid: ef1e41dbea8b2144b9e0b405402faeef, type: 3}
       propertyPath: maxMinute
-      value: 60
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 1678911143623422894, guid: ef1e41dbea8b2144b9e0b405402faeef, type: 3}
       propertyPath: increments
@@ -5857,6 +5854,11 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_Padding: {x: -8, y: -5, z: -8, w: -5}
   m_Softness: {x: 0, y: 0}
+--- !u!224 &1972200753 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 1678911143064751794, guid: ef1e41dbea8b2144b9e0b405402faeef, type: 3}
+  m_PrefabInstance: {fileID: 1590891959}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1 &1978795379
 GameObject:
   m_ObjectHideFlags: 0
@@ -7009,8 +7011,8 @@ MonoBehaviour:
   EnemyTowerContainer: {fileID: 0}
   EnemyContainer: {fileID: 0}
   BoxContainer: {fileID: 0}
-  swimlaneContainer: {fileID: 0}
-  timelineContainer: {fileID: 0}
+  swimlaneContainer: {fileID: 927210891}
+  timelineContainer: {fileID: 1972200753}
   buttonTest: {fileID: 1258195768}
 --- !u!1 &2142743453
 GameObject: