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(); submitButton = GetComponent(); 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; } } }