Изменение цвета работает, как вы сказали (вы можете видеть это в Инспекторе Button
)
Проблема в том, что цвет компонента Image
не обновляется автоматически, поскольку Button
не получает никакого события указателя, например PointerDown
, PointerExit
и т. Д. => Новый цвет не применяется к Image
(только в тех случаях, когда вы создаете новое событие указателя, например, ввод, выход, вверх или вниз).
Вы можете решить это, выполнив
GetComponent<Image>().color = colors.normalColor;
дополнительные везде, где вы меняете его.
Примечание. В общем случае GetComponent
следует использовать только один раз в Awake
.
private Button _button;
private Image _image;
private void Awake()
{
_button = GetComponent<Button>();
_image = GetComponent<Image>();
}
и затем повторно использовать ссылки _image
и _button