private void SpawnUnit(bool enemy, PlayerUnitManager.EUnitType type) { GameObject newUnit = null; if (enemy) { switch (type) { case PlayerUnitManager.EUnitType.Archer: newUnit = Instantiate(_goEnemyArcherPrefab); _goEnemyArchers.Add(newUnit); break; case PlayerUnitManager.EUnitType.Spearman: newUnit = Instantiate(_goEnemySpearmanPrefab); _goEnemySpearmen.Add(newUnit); break; case PlayerUnitManager.EUnitType.Swordsman: newUnit = Instantiate(_goEnemySwordsmanPrefab); _goEnemySwordsmen.Add(newUnit); break; default: return; } } else { switch (type) { case PlayerUnitManager.EUnitType.Archer: newUnit = Instantiate(_goPlayerArcherPrefab); _goPlayerArchers.Add(newUnit); break; case PlayerUnitManager.EUnitType.Spearman: newUnit = Instantiate(_goPlayerSpearmanPrefab); _goPlayerSpearmen.Add(newUnit); break; case PlayerUnitManager.EUnitType.Swordsman: newUnit = Instantiate(_goPlayerSwordsmanPrefab); _goPlayerSwordsmen.Add(newUnit); break; default: return; } } newUnit.transform.position = Vector3.zero; newUnit.transform.rotation = Quaternion.identity; newUnit.transform.SetParent(ThisGO.transform); newUnit.SetActive(false); }
public void ReturnUnit(GameObject returned, bool enemy, PlayerUnitManager.EUnitType type) { returned.SetActive(false); if (enemy) { switch (type) { case PlayerUnitManager.EUnitType.Archer: _goEnemyArchers.Add(returned); break; case PlayerUnitManager.EUnitType.Spearman: _goEnemySpearmen.Add(returned); break; case PlayerUnitManager.EUnitType.Swordsman: _goEnemySwordsmen.Add(returned); break; } } else { switch (type) { case PlayerUnitManager.EUnitType.Archer: _goPlayerArchers.Add(returned); break; case PlayerUnitManager.EUnitType.Spearman: _goPlayerSpearmen.Add(returned); break; case PlayerUnitManager.EUnitType.Swordsman: _goPlayerSwordsmen.Add(returned); break; } } }
public GameObject TakeUnit(bool enemy, PlayerUnitManager.EUnitType type) { GameObject returnedObject = null; if (enemy) { switch (type) { case PlayerUnitManager.EUnitType.Archer: if (_goEnemyArchers.Count == 0) { SpawnUnit(true, PlayerUnitManager.EUnitType.Archer); } returnedObject = _goEnemyArchers[0]; _goEnemyArchers.Remove(returnedObject); break; case PlayerUnitManager.EUnitType.Spearman: if (_goEnemySpearmen.Count == 0) { SpawnUnit(true, PlayerUnitManager.EUnitType.Spearman); } returnedObject = _goEnemySpearmen[0]; _goEnemySpearmen.Remove(returnedObject); break; case PlayerUnitManager.EUnitType.Swordsman: if (_goEnemySwordsmen.Count == 0) { SpawnUnit(true, PlayerUnitManager.EUnitType.Swordsman); } returnedObject = _goEnemySwordsmen[0]; _goEnemySwordsmen.Remove(returnedObject); break; default: return(null); } } else { switch (type) { case PlayerUnitManager.EUnitType.Archer: if (_goPlayerArchers.Count == 0) { SpawnUnit(false, PlayerUnitManager.EUnitType.Archer); } returnedObject = _goPlayerArchers[0]; _goPlayerArchers.Remove(returnedObject); break; case PlayerUnitManager.EUnitType.Spearman: if (_goPlayerSpearmen.Count == 0) { SpawnUnit(false, PlayerUnitManager.EUnitType.Spearman); } returnedObject = _goPlayerSpearmen[0]; _goPlayerSpearmen.Remove(returnedObject); break; case PlayerUnitManager.EUnitType.Swordsman: if (_goPlayerSwordsmen.Count == 0) { SpawnUnit(false, PlayerUnitManager.EUnitType.Swordsman); } returnedObject = _goPlayerSwordsmen[0]; _goPlayerSwordsmen.Remove(returnedObject); break; default: return(null); } } return(returnedObject); }