private void FixedUpdate() { if (_isSpawnEnd) { return; } if (_stageData == null) { _isSpawnEnd = true; return; } spawnTime -= Time.fixedDeltaTime; if (spawnTime <= 0) { _spawnMgr.SetSpawnPoint(_curUnitData.IsDown ? _bottomLineTrn.position : _topLineTrn.position); _spawnMgr.SetSpawnIndex(_curUnitData.Index - 1); _spawnMgr.Spawn(); if (_stageData._spawnUnitData.Count <= _curUnitDataNum + 1) { _isSpawnEnd = true; } _curUnitData = _stageData._spawnUnitData[++_curUnitDataNum]; spawnTime = _curUnitData.SpawnSec - prevSpawnSec; prevSpawnSec = _curUnitData.SpawnSec; } }
private void InitStage(string fileName) { List <string> stageDatas = CSVParser.Read(fileName); if (stageDatas == null) { return; } int lineCount = 0; string[] splitDatas; StageData newData = new StageData(); newData.Init(); // 유닛 갯수는 최대 6개 for (; lineCount < 6; ++lineCount) { splitDatas = stageDatas[lineCount].Split(','); for (int j = 0; j < 4; ++j) { int.TryParse(splitDatas[j], out newData.Team.GetUnit(lineCount)._equipedItems[j]); } } ++lineCount; splitDatas = stageDatas[lineCount++].Split(','); while (!string.IsNullOrWhiteSpace(splitDatas[0]) && stageDatas.Count > lineCount) { SpawnUnit newUnit = new SpawnUnit(); int.TryParse(splitDatas[0], out newUnit.SpawnSec); int.TryParse(splitDatas[1], out newUnit.Index); int updownNum; int.TryParse(splitDatas[2], out updownNum); newUnit.IsDown = updownNum == 0 ? false : true; newData._spawnUnitData.Add(newUnit); splitDatas = stageDatas[lineCount++].Split(','); } _stageDataList.Add(newData); }