public void SpawnUnit(UnitIdentifier unitIdentifier) { var character = Instantiate(baseCharacterMaster, unitRoot); var initialPosition = unitIdentifier.TeamId == 0 ? spawnpointFetcher.GetNextPlayerStartPosition() : spawnpointFetcher.GetNextEnemyStartPosition(); var unitDataSO = UnitListSO.GetUnitDataSO(unitIdentifier.UnitClass); var unit = UnitFactory.GetUnit(unitIdentifier, unitDataSO, initialPosition); character.Initialize(unit, unitDataSO.unitClassMaster); character.transform.position = initialPosition; if (unitIdentifier.TeamId == 1) { character.transform.rotation = Quaternion.Euler(0f, 180f, 0f); } if (!ActiveCharacters.ContainsKey(unitIdentifier)) { ActiveCharacters.Add(unitIdentifier, character); } else { Debug.LogError($"[UnitManager] Unit {unitIdentifier.ToString()} was already spawned!"); } }
public override string ToString() { var builder = new StringBuilder(); builder.Append(Designator); if (UnitIdentifier != null) { builder.Append(" "); builder.Append(UnitIdentifier.ToString()); } return(builder.ToString()); }