Unity: Как программно изменить переключатель в группе переключателей? - PullRequest
0 голосов
/ 09 февраля 2020

В моей игре есть группа переключателей для изменения сложности, а внутри скрипта я хочу изменить активный переключатель. Например, по умолчанию игра настроена на нормальное, в моем скрипте я хочу изменить сложность на легкую, как я могу выполнить sh это?

public ToggleGroup difficultyToggle;

// Start is called before the first frame update
void Start()
{
    difficultyToggle = config.difficulty;
}

Ответы [ 2 ]

1 голос
/ 09 февраля 2020

Не совсем понятно, что вы пытаетесь сделать, но из того, что я понимаю:

У вас есть группа переключателей для различных игровых сложностей. Группы переключения используются для того, чтобы в каждый момент времени была активна только одна опция, и это именно то, что вам нужно в этом случае. Чтобы изменить настройку, вам нужно изменить значение IsOn кнопки.

public Toggle toggle;

// Start is called before the first frame update
void Start()
{
    toggle.isOn = false;
}

Если вы хотели изменить сложность при изменении переключателя, вы можете добавить функцию, которая срабатывает. при изменении значения переключателя (isOn).

Приведенная ниже ссылка объяснит, что это делает. Прочтите раздел «События»:

https://docs.unity3d.com/Packages/com.unity.ugui@1.0 / manual / script-Toggle. html

0 голосов
/ 09 февраля 2020

toggleGroup.NotifyToggleOn (easyModeToggle);

не будет работать, однако прямое обращение к переключателю будет следующим:

easyModeToggle.isOn = true;

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

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