C # Unity: введите дополнительные значения класса с "частичным именем + номером" - PullRequest
1 голос
/ 26 мая 2019

Я получил номер из класса.теперь я хотел бы ввести параметры через последнее:

float CarLevel = Settings.LevelSelected; // from main get the level

var LevelNumber = Settings.(LevelOfCar+CarLevel); //enter in corret level

float Kmh = LevelNumber.Kmh; //get the par of level

очевидно, что это не работает так ... как я могу избежать классической игры, ЕСЛИ УРОВЕНЬ ЕЩЕ 2 ...для всех уровней?советы?

1 Ответ

1 голос
/ 26 мая 2019

Я бы предложил более объектно-ориентированный подход.

Рассмотрим следующее

public class Level : ScriptableObject
{
    public int CarLevel;
    public float Kmh;
    // other variables that are shared across all levels
}

И если вам нужен конкретный код для каждого уровня, использующего один и тот же сценарий, вы можете использовать наследование.

public class SpecificLevel : Level
{
    public void DoSomething()
    {

    }
}

Имейте класс менеджера, содержащий все ваши уровни.

public class LevelManager : MonoBehaviour
{
    // Assign levels here through the inspector
    public List<Level> Levels;

    public void LoadLevel()
    {
        Level level = Levels.First(x => x.CarLevel == Settings.LevelSelected);
        // Do whatever you want with your level
    } 
}

Вам нужно будет добавить linq, используя.

using System.Linq;

Если вы не знаетео скриптовых объектах, я предлагаю следовать этому короткому учебнику.Это очень поможет вам в вашем развитии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...