To chime in here, there is a bug where after a click, if the button is set to disabled during the click, if the mouse is moved out of the button it will trigger the on hover event and make the button perpetually stuck on "normal" sprite.
The code:
void OnHover (bool isOver)
{
if (enabled && target != null)
{
target.spriteName = isOver ? hoverSprite : normalSprite;
target.MakePixelPerfect();
}
}
Should be:
void OnHover (bool isOver)
{
if (isEnabled && target != null)
{
target.spriteName = isOver ? hoverSprite : normalSprite;
target.MakePixelPerfect();
}
}