CapersProject/Assets/02.Scripts/Ui/Tycoon/ManualCocktailButton.cs
2024-12-02 20:43:08 +09:00

51 lines
1.3 KiB
C#

using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace BlueWater.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;
}
}
}