using System.Collections; using System.Collections.Generic; using DG.Tweening; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; [RequireComponent(typeof(Image))] public class UITrainButton : MonoBehaviour, IPointerClickHandler { public TrainType trainType; [SerializeField] private Color selectedColor; private Color unselectedColor; private Image buttonBase; public bool isSelected { get; private set; } LocomotionHandler locomotionHandler; void Start() { buttonBase = GetComponent(); unselectedColor = buttonBase.color; } public void Select() { if(isSelected) return; if(locomotionHandler == null) locomotionHandler = FindObjectOfType(); var buttons = FindObjectsOfType(); foreach(var item in buttons) { if(item.isSelected) item.Unselect(); } FindObjectOfType() .ShowAboutTrainButton(); locomotionHandler.ShowTrain(trainType); buttonBase.DOColor(selectedColor, .2f); isSelected = true; } public void Unselect() { buttonBase.DOColor(Color.white, .2f); isSelected = false; } public void OnPointerClick(PointerEventData eventData) { Select(); } }