Я использую C# с Unity, хотя вам, вероятно, не нужно знать Unity, чтобы помочь здесь :). Я был бы очень признателен за ваш совет, поскольку я все еще новичок в кодировании.Как сделать кнопки интерактивными = ложными на основе содержимого какого-либо списка?
У меня есть панель с 8 кнопками. Каждый добавляет 1 элемент в список. Но мне нужно проверить, есть ли у игрока уже этот элемент в его списке (это имя строки), и если это так, поверните кнопку, соответствующую этому элементу, на interactiveable = false.
Другими словами, если у игрока есть этот предмет, мне нужно сделать кнопку, которая добавит этот элемент неактивным (так что игрок не может щелкнуть, чтобы добавить его в список снова).
Элементы - это только строковые имена в списке предметов. Кнопки запускают простые функции: ButtonList.Add ("item1") и т. Д.
Я пытался построить что-то вроде этого:
Button Btn_item0 = GameObject.Find ("Btn_item0").GetComponent <Button>();
Button Btn_item1 = GameObject.Find ("Btn_item1").GetComponent <Button>();
Button Btn_item2 = GameObject.Find ("Btn_item2").GetComponent <Button>();
Button Btn_item3 = GameObject.Find ("Btn_item3").GetComponent <Button>();
Button Btn_item4 = GameObject.Find ("Btn_item4").GetComponent <Button>();
Button Btn_item5 = GameObject.Find ("Btn_item5").GetComponent <Button>();
Button Btn_item6 = GameObject.Find ("Btn_item6").GetComponent <Button>();
Button Btn_item7= GameObject.Find ("Btn_item7").GetComponent <Button>();
List<Button> buttonList = new List<Button>() {Btn_item0, Btn_item1, Btn_item2, Btn_item3, Btn_item4, Btn_item5, Btn_item6, Btn_item7};
List<string> itemList = new List<string>() {"item0", "item1", "item2", "item3", "item4", "item5", "item6", "item7"};
foreach (Button button in buttonList) {
foreach (string item in itemList) {
if (itemList.Contains (item))
button.interactable = false;
}
}
Но очевидно, что это не будет работать. Как вы это делаете правильно?
Ps. Вышеуказанные все кнопки неактивны, потому что в цикле foreach мы создали строковый элемент, который является каждой позицией в списке. Таким образом, список элементов содержит элемент для каждой позиции списка, поэтому все кнопки становятся неактивными.
'buttonList' должен быть' List
Да, извините, это была опечатка здесь. Исправлено, но вопрос открыт. –