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

    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();
    }
    Ответ написан
    5 комментариев