CapersProject/Assets/02.Scripts/Ui/Tycoon/ManualCocktailButton.cs

51 lines
1.3 KiB
C#
Raw Normal View History

2024-12-02 01:48:44 +00:00
using System;
2024-10-24 05:04:40 +00:00
using UnityEngine;
2024-12-02 01:48:44 +00:00
using UnityEngine.EventSystems;
2024-10-24 05:04:40 +00:00
using UnityEngine.UI;
2024-11-17 04:29:57 +00:00
namespace BlueWater.Uis
{
2024-12-02 11:43:08 +00:00
public class ManualCocktailButton : MonoBehaviour, ISelectHandler, IDeselectHandler
2024-11-17 04:29:57 +00:00
{
2024-12-02 11:43:08 +00:00
[field: SerializeField]
public Button Button { get; private set; }
2024-11-17 04:29:57 +00:00
[field: SerializeField]
public Image Image { get; private set; }
2024-12-02 01:48:44 +00:00
[field: SerializeField]
2024-12-02 11:43:08 +00:00
public Image SelectedImage { get; private set; }
2024-10-24 05:04:40 +00:00
2024-12-02 01:48:44 +00:00
private Action<ManualCocktailButton> _onSelectedAction;
2024-12-02 11:43:08 +00:00
private void Start()
{
if (EventSystem.current.currentSelectedGameObject == gameObject) return;
SelectedImage.enabled = false;
}
2024-12-02 01:48:44 +00:00
private void OnDestroy()
2024-11-17 04:29:57 +00:00
{
2024-12-02 01:48:44 +00:00
_onSelectedAction = null;
2024-11-17 04:29:57 +00:00
}
2024-10-24 05:04:40 +00:00
2024-12-02 01:48:44 +00:00
public void OnSelect(BaseEventData eventData)
2024-11-17 04:29:57 +00:00
{
2024-12-02 11:43:08 +00:00
SelectedImage.enabled = true;
2024-12-02 01:48:44 +00:00
_onSelectedAction?.Invoke(this);
2024-11-17 04:29:57 +00:00
}
2024-12-02 01:48:44 +00:00
2024-12-02 11:43:08 +00:00
public void OnDeselect(BaseEventData eventData)
{
SelectedImage.enabled = false;
}
2024-11-17 04:29:57 +00:00
public void SetImage(Sprite sprite) => Image.sprite = sprite;
2024-12-02 01:48:44 +00:00
public void AddSelectedAction(Action<ManualCocktailButton> selectedAction)
2024-11-17 04:29:57 +00:00
{
2024-12-02 01:48:44 +00:00
_onSelectedAction += selectedAction;
2024-11-17 04:29:57 +00:00
}
2024-10-24 05:04:40 +00:00
}
2024-11-17 04:29:57 +00:00
}