Как мне связать случайный массив с массивом, который связан по теме? - PullRequest
1 голос
/ 10 марта 2019

Я создаю небольшое приложение для случайного выбора парка в мире Диснея, в который я могу пойти, как только я в этом парке, я хочу нажать кнопку - «Что мне ехать?»за то, что он сказал мне, что ехать в той части парка, которую он выбрал для меня.

Как если бы он сказал

"Отправляйся в Царство животных", то когда я нажму "Что я поеду?"

Хочу сказать "Экспедиция на Эверест".Но он выбирает парк случайным образом, поэтому я не уверен, как связать другой массив, который был бы случайным, но совпадает в том смысле, что парк и поездка находятся в одной и той же части парка.

Пример кода:

public void LoadNextScene()
{
    int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
    SceneManager.LoadScene(currentSceneIndex + 1);
}

public void LoadStartScene()
{
    SceneManager.LoadScene(0);
}

public void OnPressPap()
{
    SceneManager.LoadScene(1);
}

public void OnPressRides()
{
    SceneManager.LoadScene(2);
}

выше - мой простой загрузчик сцены после нажатия кнопки.

{
    public string[] ParkNameArray;
    public string ParkName;
    public TextMeshProUGUI ParkNameText;    
    private void Start()
    {
        ParkName = ParkNameArray[Random.Range(0, ParkNameArray.Length)];
        ParkNameText.text = ParkName.ToString();
    }    
}

Выше мой массив и случайный диапазон, который я используюв единстве для редактирования.

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

Список массивов в единстве (парки только в атм)

Выберите поездку

Это изображение ниже, где я хочу нажать «Что ездить?»и это будет связано с парком, который только что был выбран.

Поездка выбрана случайным образом со случайным фактом

Ответы [ 2 ]

3 голосов
/ 10 марта 2019

Объекты

Вот почему ООП вещь.

Вместо того, чтобы создавать два массива и пытаться выяснить, кто связывает один массив с другим, вы объединяете эти массивы в объекты и создаете один массив таких.

Например, каждый парк (объект) содержит аттракционы (массив). Есть несколько (массив) парков.

public class Park {
    public string parkName;
    public Ride[] listOfRides; //Ride is similarly defined like Park is
}

А потом ваш другой код:

{
    public Park[] ParksArray;
    //...
}

Теперь все, что вам нужно, - это случайным образом выбрать парк, получить его аттракционы и случайным образом выбрать аттракцион из этого списка:

int randPark = Random.Range(0, ParksArray.Length);
Ride[] availableRides = ParksArray[randPark].listOfRides;
int randRide = Random.Range(0, availableRides.Length);
Debug.Log(ParksArray[randPark].name + ":" + availableRides[randRide].name);
1 голос
/ 10 марта 2019

Вы можете сохранить свой массив в объекте с возможностью сценариев, который будет назначен вам сценариями.Подробнее здесь

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