public List <UnitAbility> GetUnitAbilities()
    {
        var unitAbilities = new List <UnitAbility>();

        // In the future each ability will be determined here if it's active or not
        foreach (var abilitySetup in UnitAbilityManager.GetUnitAbilitySetups())
        {
            unitAbilities.Add(UnitAbilityFactory.GetUnitAbility(abilitySetup));
        }

        return(unitAbilities);
    }
 public static Unit GetUnit(UnitIdentifier unitIdentifier, UnitDataSO unitDataSO, Vector3 initialPosition)
 {
     return
         (new Unit(unitIdentifier,
                   new UnitData(unitDataSO,
                                UnitAbilityFactory.GetUnitAbilities(unitDataSO),
                                unitDataSO.goalOrientedBehaviourPresetSO.goals,
                                unitIdentifier.TeamId == 0
                     ? Color.green
                     : Color.red,
                                initialPosition)
                   ));
 }