Files

60 lines
1.8 KiB
C#
Raw Permalink Normal View History

using AZTECHWB.Extensions;
2026-01-16 09:23:25 +09:00
using System;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
2026-01-16 09:23:25 +09:00
using UnityEngine.UI;
namespace AZTECHWB.UI
2026-01-16 09:23:25 +09:00
{
public class LibraryButton : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler
2026-01-16 09:23:25 +09:00
{
public Machine machine;
public event Action<LibraryButton> onClickButton;
private TMP_Text buttonName;
private Image background;
private Image PreviewImage;
private Image Image_Selected;
2026-01-16 09:23:25 +09:00
public void SettingButton(Machine machine)
{
this.machine = machine;
buttonName = transform.GetComponentInChildren<TMP_Text>();
background = transform.GetComponent<Image>();
transform.TryGetComponentInChildren(nameof(PreviewImage), out PreviewImage);
transform.TryGetComponentInChildren(nameof(Image_Selected), out Image_Selected);
2026-01-16 09:23:25 +09:00
buttonName.SetText(machine.machineName);
2026-01-16 09:23:25 +09:00
PreviewImage.sprite = machine.previewImage;
}
public void OnSelected()
{
buttonName.color = new Color32(251, 251, 251, 255);
Image_Selected.gameObject.SetActive(true);
}
public void OnDeselected()
{
buttonName.color = new Color32(15, 17, 23, 255);
Image_Selected.gameObject.SetActive(false);
}
public void OnPointerEnter(PointerEventData eventData)
{
background.color = new Color32(255, 255, 255, 255);
}
public void OnPointerExit(PointerEventData eventData)
{
background.color = new Color32(255, 255, 255, 204);
}
public void OnPointerClick(PointerEventData eventData)
{
onClickButton?.Invoke(this);
}
2026-01-16 09:23:25 +09:00
}
}