소스 검색

修复编辑器波次修改无用,添加新怪报错问题

wgl 5 달 전
부모
커밋
60aba9891a
1개의 변경된 파일15개의 추가작업 그리고 6개의 파일을 삭제
  1. 15 6
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/Editor/GameMapEditor.cs

+ 15 - 6
ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/Editor/GameMapEditor.cs

@@ -998,12 +998,21 @@ public class GameMapEditor : EditorWindow
 				for(int i = 0; i < newSpawnTimes.Count; i++)
                 {
 					SpawnTime newSpawnTime = newSpawnTimes[i];
-					
-					EditorGUILayout.LabelField($"{asset.tileAsset.GetTile(newSpawnTime.id).name} - {newSpawnTime.pos.Count}", EditorStyles.boldLabel);
-					newSpawnTime.startTime = EditorGUILayout.IntField("Start Time", layer.spawnTimes[i].startTime);
-					newSpawnTime.endTime = EditorGUILayout.IntField("End Time", layer.spawnTimes[i].endTime);
-					newSpawnTime.num = EditorGUILayout.IntField("Number", layer.spawnTimes[i].num);
 
+					EditorGUILayout.LabelField($"{asset.tileAsset.GetTile(newSpawnTime.id).name} - {newSpawnTime.pos.Count}", EditorStyles.boldLabel);
+					if (i >= layer.spawnTimes.Count)
+                    {
+						newSpawnTime.startTime = EditorGUILayout.IntField("Start Time", 0);
+						newSpawnTime.endTime = EditorGUILayout.IntField("End Time", 0);
+						newSpawnTime.num = EditorGUILayout.IntField("Number", 0);
+					}
+                    else
+                    {
+						newSpawnTime.startTime = EditorGUILayout.IntField("Start Time", layer.spawnTimes[i].startTime);
+						newSpawnTime.endTime = EditorGUILayout.IntField("End Time", layer.spawnTimes[i].endTime);
+						newSpawnTime.num = EditorGUILayout.IntField("Number", layer.spawnTimes[i].num);
+					}
+					
 					if (GUILayout.Button("Remove"))
 					{
 						for (int j = 0; j < newSpawnTime.pos.Count; j++)
@@ -1011,6 +1020,7 @@ public class GameMapEditor : EditorWindow
 							layer.grid[newSpawnTime.pos[j]] = -1;
 						}
 					}
+					newSpawnTimes[i] = newSpawnTime;
 				}
             }
 
@@ -1035,7 +1045,6 @@ public class GameMapEditor : EditorWindow
 			layer.buildingHp = buildingHp;
 			layer.isTowerWave = isTowerWave;
 			layer.spawnTimes = newSpawnTimes;
-			Debug.Log(layer.spawnTimes[0].pos);
 			AssetDatabase.SaveAssets();
 		}
 		// 标记资源为脏数据,以便保存更改