Files
aibis-dream/Assets/Scripts/MiniGame/BlockPuzzle/Class/UIHander/BlockSubmitHander.cs
T
2026-02-04 23:53:16 +08:00

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;
}
}
}