@Attilochka

Как поменять изображение у кнопки через скрипт?

У меня есть календарь. Нажимая на дату, перехожу на сцену со стикерами, выбираю стикер, кнопка на календаре становится выбранным смайликом.
629dfc9c16815346406316.png
629dfcf7d2cdb702457761.png
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
EveningEugene
@EveningEugene
Unity-разраб
Вот у вас есть кнопка, которая реагирует на клик. Как она реагирует? Вызывает новое окно, где есть список смайлов. Как вызывает? Очевидно, через вызов какого-то метода, например, OpenSmileMenu(). Так вот, пускай этот метод имеет параметр Action<Sprite>. Что должно передаваться? Ссылка на метод класса кнопки по которому кликнули, который принимает в себя спрайт и этот спрайт уже применяет к изображению кнопки.
private void UpdateSprite(Sprite sprite){
  spriteRenderer.sprite = sprite;
}
Что происходит в OpenSmileMenu(Action<Sprite> callback)? В нём мы этот колбек прибавляем к событию: SmileChoosed += callback;
Далее. Что происходит при нажатие на смайл? Очевидно, вызывается обработчик клика. Что он делает?
private void OnClick(Button button){
  callback?.Invoke(button.GetComponent<SpriteRenderer>().sprite);
  CloseSpriteMenu();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Unity
Самое элементарное - на кнопке уже должны быть ВСЕ смайлики, вы просто включаете нужный.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы