Beispiel #1
0
    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!");
        }
    }
Beispiel #2
0
        public override string ToString()
        {
            var builder = new StringBuilder();

            builder.Append(Designator);

            if (UnitIdentifier != null)
            {
                builder.Append(" ");
                builder.Append(UnitIdentifier.ToString());
            }

            return(builder.ToString());
        }