53 lines
1.9 KiB
C#
53 lines
1.9 KiB
C#
using UnityEngine;
|
|
using AibisDream.UI;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.UI;
|
|
|
|
namespace AibisDream
|
|
{
|
|
public class BlockSubmitHander : MonoBehaviour
|
|
{
|
|
[Header("图片索引")]
|
|
[SerializeField] private SpriteTint validAsset;
|
|
[SerializeField] private SpriteTint invalidAsset;
|
|
|
|
private bool _validState = false;
|
|
private BaseButton submitButton;
|
|
private Image submitButtonImage;
|
|
public UnityEvent OnClick => submitButton.onClick;
|
|
|
|
private void Awake()
|
|
{
|
|
submitButtonImage = GetComponent<Image>();
|
|
submitButton = GetComponent<BaseButton>();
|
|
submitButton.onStateTransition.AddListener(OnStateTransition);
|
|
}
|
|
|
|
private void OnStateTransition(SelectionType stateTransition, bool instant)
|
|
{
|
|
switch (stateTransition)
|
|
{
|
|
case SelectionType.Normal:
|
|
submitButtonImage.sprite = _validState ? validAsset.normalSprite : invalidAsset.normalSprite;
|
|
break;
|
|
case SelectionType.Highlighted:
|
|
submitButtonImage.sprite = _validState ? validAsset.highlightedSprite : invalidAsset.highlightedSprite;
|
|
break;
|
|
case SelectionType.Pressed:
|
|
submitButtonImage.sprite = _validState ? validAsset.pressedSprite : invalidAsset.pressedSprite;
|
|
break;
|
|
case SelectionType.Selected:
|
|
submitButtonImage.sprite = _validState ? validAsset.selectedSprite : invalidAsset.selectedSprite;
|
|
break;
|
|
case SelectionType.Disabled:
|
|
submitButtonImage.sprite = _validState ? validAsset.disabledSprite : invalidAsset.disabledSprite;
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void SetValidState(bool valid)
|
|
{
|
|
_validState = valid;
|
|
}
|
|
}
|
|
} |