public class UIImageButton : MonoBehaviour
{
public UISprite target;
public string normalSprite;
public string hoverSprite;
public string pressedSprite;
public string disabledSprite;
public bool isEnabled
{
get
{
Collider col = collider;
return col && col.enabled;
}
set
{
Collider col = collider;
if (!col) return;
if (col.enabled != value)
{
col.enabled = value;
UpdateImage();
}
}
}
void Awake () { if (target == null) target = GetComponentInChildren<UISprite>(); }
void OnEnable () { UpdateImage(); }
void UpdateImage()
{
if (target != null)
{
if (isEnabled)
{
target.spriteName = UICamera.IsHighlighted(gameObject) ? hoverSprite : normalSprite;
}
else
{
target.spriteName = disabledSprite;
}
target.MakePixelPerfect();
}
}
void OnHover (bool isOver)
{
if (enabled && target != null)
{
target.spriteName = isOver ? hoverSprite : normalSprite;
target.MakePixelPerfect();
}
}
void OnPress (bool pressed)
{
if (pressed)
{
target.spriteName = pressedSprite;
target.MakePixelPerfect();
}
else UpdateImage();
}
}