Как через код изменить прозрачность кнопки?
Мне нужно сделать так, что когда игрок входит в определенную область, кнопка изменяет свою прозрачность, но у меня никак не получается, что я только не пробовал, какой код только не вставлял, не понимаю свою проблему
Вот один из примеров, как я пробовал это реализовать, но не работает
public Button KillButton;
if (collision.tag.Equals("KillRadius"))
{
KillButton = GetComponent<Button>();
if (Input.GetKey(KeyCode.Space))
{
transform.position = enemy.transform.position;
var KillButton = gameObject.GetComponent<Button>();
var colors = KillButton.colors;
colors.normalColor = new Color(255, 255, 255, 250);
KillButton.colors = colors;
}
}
Ответы (1 шт):
Из комментариев понял, что вы не знаете как обратиться к кнопке. Первый вариант: создать публичную переменную типа GamaObject, в которую в инспекторе перетащим нашу кнопку:
publiс GameObject myButton;
Назвать можем естественно как хотим переменную. Теперь получаем из нее компонент button следующим образом
Button buttonComponent = myButton.GetComponent<Button>();
Однако это очень муторно и бесполезно: лишняя переменная, лишняя строчка кода, к тому же в нашей кнопке обычно ничего, кроме самого компонента Button нам не нужно, поэтому лучше создадим переменную СРАЗУ типа данных Button:
public Button myButton;
Причем в инспекторе ничего не меняется: просто также перетягиваем кнопку.
Теперь в переменной хранится КОМПОНЕНТ BUTTON ВАШЕЙ КНОПКИ. Цвет можем поменять следующим образом:
Color color = new Color(255, 255, 255, 250);
myButton.colors.normalColor = color;
Не нужно создавать лишние переменные такие как var killButton, вы напрямую пишите
кнопка.цвета.нормальныйЦвет = мойЦвет
Можно естественно не оборачивать color в переменную и указать напрямую, как сделали вы:
myButton.colors.normalColor = color;
Если мой ответ вам помог, примите его, поставив галочку, если у вас остались вопросы - задавайте их в комментариях:)
Не нужно это делать в методе OnTriggerStay, потому что он вызывается каждый кадр, когда есть контакт. Вызывайте в OnTriggerEnter
Попробую угадать, вы случайно не Among Us делаете?