CapersProject/Assets/02.Scripts/BlueWater/Ui/Tycoon/ManualCocktailButton.cs
2025-02-10 11:13:46 +09:00

51 lines
1.3 KiB
C#

using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace DDD.Uis
{
public class ManualCocktailButton : MonoBehaviour, ISelectHandler, IDeselectHandler
{
[field: SerializeField]
public Button Button { get; private set; }
[field: SerializeField]
public Image Image { get; private set; }
[field: SerializeField]
public Image SelectedImage { get; private set; }
private Action<ManualCocktailButton> _onSelectedAction;
private void Start()
{
if (EventSystem.current.currentSelectedGameObject == gameObject) return;
SelectedImage.enabled = false;
}
private void OnDestroy()
{
_onSelectedAction = null;
}
public void OnSelect(BaseEventData eventData)
{
SelectedImage.enabled = true;
_onSelectedAction?.Invoke(this);
}
public void OnDeselect(BaseEventData eventData)
{
SelectedImage.enabled = false;
}
public void SetImage(Sprite sprite) => Image.sprite = sprite;
public void AddSelectedAction(Action<ManualCocktailButton> selectedAction)
{
_onSelectedAction += selectedAction;
}
}
}