Unity. Есть кнопки х1, х2, х3, х5, х7 и х10. Если одна из них нажата, то остальные заблокированы от нажатия.
В Unity вы можете реализовать функциональность, при которой только одна из нескольких кнопок может быть активной в любое время. Для этого вам понадобится управлять состояниями кнопок при нажатии одной из них. Вот простой пример того, как это можно сделать с использованием UI-кнопок.
- Создайте UI-кнопки для каждого множителя (x1, x2, x3, x5, x7, x10) в вашем интерфейсе Unity.
- Создайте новый скрипт, назовите его, например,
MultiplierManager
. - В этом скрипте создайте ссылки на ваши кнопки и реализацию логики их блокировки/разблокировки.
Вот пример кода для MultiplierManager
:
using UnityEngine;
using UnityEngine.UI;
public class MultiplierManager : MonoBehaviour
{
public Button[] multiplierButtons; // Массив кнопок множителей
// Метод для обработки нажатия на кнопку
public void OnMultiplierButtonClicked(int index)
{
// Отключаем все кнопки
foreach (Button button in multiplierButtons)
{
button.interactable = true; // Сначала разблокируем все
}
// Блокируем все кнопки, кроме нажатой
for (int i = 0; i < multiplierButtons.Length; i++)
{
if (i != index)
{
multiplierButtons[i].interactable = false; // Блокируем другие кнопки
}
}
// Здесь можно добавить код для обработки выбранного множителя
Debug.Log("Выбран множитель: " + multiplierButtons[index].GetComponentInChildren<Text>().text);
}
}
- Теперь привяжите этот скрипт к любому GameObject на сцене, а затем в инспекторе добавьте ваши кнопки в массив
multiplierButtons
. - Для каждой кнопки выполните следующее действие:
- Добавьте к кнопке компонент
Button
. - В вкладке
OnClick()
добавьте функциюOnMultiplierButtonClicked
, выберите объект, на который прикреплен скриптMultiplierManager
, и укажите индекс соответствующей кнопки (например, для первой кнопки это будет 0, для второй – 1 и так далее).
Теперь, когда пользователь нажимает на одну из кнопок, все остальные кнопки будут блокироваться, а нажатая кнопка останется активной.