protected override void Spawn() { STEP = ValidRect.width / SPAWN_COUNT; SpawnDataModel[] dataSet = PawnSpawnPatternControl.Instance.ParseTexture("Pattern_1", CurrentRow); int len = dataSet.Length; for (int i = 0; i < len; i++) { SpawnDataModel data = dataSet [i]; Vector3 pos; string EnemyName = ""; pos = new Vector3(ValidRect.x + (STEP * (data.Position + 0.5F)), ValidRect.yMax - 0.01F, 0); if (null == data) { continue; } switch (data.SpawnPattern) { case PawnSpawnPatternControl.SpawnPattern.NONE: break; case PawnSpawnPatternControl.SpawnPattern.CURRENT_LEVEL: EnemyName = DifficultyControl.Instance.GetCurrentEnemyName(0); break; case PawnSpawnPatternControl.SpawnPattern.CURRENT_LEVEL_PLUS_1: EnemyName = DifficultyControl.Instance.GetCurrentEnemyName(1); break; case PawnSpawnPatternControl.SpawnPattern.CURRENT_LEVEL_PLUS_2: EnemyName = DifficultyControl.Instance.GetCurrentEnemyName(2); break; case PawnSpawnPatternControl.SpawnPattern.OBSTACLE_BREAKABLE: EnemyName = DifficultyControl.Instance.GetCurrentObstacleName(false); break; case PawnSpawnPatternControl.SpawnPattern.OBSTACLE_UNBREAKABLE: EnemyName = DifficultyControl.Instance.GetCurrentObstacleName(true); break; } if (EnemyName != "") { SpawnOneEnemy(pos, EnemyName); } } CurrentRow++; }
public SpawnDataModel[] ParseTexture(string LevelName, int Row) { Texture2D DataTexture; if (m_TextureCaching.ContainsKey(LevelName)) { DataTexture = m_TextureCaching [LevelName]; } else { DataTexture = Resources.Load <Texture2D>(SPAWN_DATA_PATH + LevelName); } Color[] Pixels = DataTexture.GetPixels(); int len_x = DataTexture.width; SpawnDataModel[] SpawnDataSet = new SpawnDataModel[len_x]; // Skip if row is bigger than texture height if (DataTexture.height - 1 < Row) { return(SpawnDataSet); } for (int x = 0; x < len_x; x++) { SpawnDataSet [x] = new SpawnDataModel(); SpawnDataSet [x].Position = x; Color c = Pixels [x + Row * len_x]; if (c.Equals(NONE)) { SpawnDataSet [x].SpawnPattern = SpawnPattern.NONE; } else if (c.Equals(CURRENT_LEVEL)) { SpawnDataSet [x].SpawnPattern = SpawnPattern.CURRENT_LEVEL; } else if (c.Equals(CURRENT_LEVEL_PLUS_1)) { SpawnDataSet [x].SpawnPattern = SpawnPattern.CURRENT_LEVEL_PLUS_1; } else if (c.Equals(CURRENT_LEVEL_PLUS_2)) { SpawnDataSet [x].SpawnPattern = SpawnPattern.CURRENT_LEVEL_PLUS_2; } else if (c.Equals(OBSTACLE_BREAKABLE)) { SpawnDataSet [x].SpawnPattern = SpawnPattern.OBSTACLE_BREAKABLE; } else if (c.Equals(OBSTACLE_UNBREAKABLE)) { SpawnDataSet [x].SpawnPattern = SpawnPattern.OBSTACLE_UNBREAKABLE; } else { Debug.Log(CURRENT_LEVEL_PLUS_1); Debug.Log(CURRENT_LEVEL_PLUS_2); Debug.Log(OBSTACLE_BREAKABLE); Debug.Log(OBSTACLE_UNBREAKABLE); Debug.LogError("[-] No match color found." + c); Debug.Log(x + ", " + Row); Debug.Break(); } } return(SpawnDataSet); }