Files
cppk-ar/Assets/Scripts/UITrainButton.cs
T
2022-11-12 15:15:01 +05:00

56 lines
1.3 KiB
C#

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<Image>();
unselectedColor = buttonBase.color;
}
public void Select()
{
if(isSelected) return;
if(locomotionHandler == null)
locomotionHandler = FindObjectOfType<LocomotionHandler>();
var buttons = FindObjectsOfType<UITrainButton>();
foreach(var item in buttons)
{
if(item.isSelected)
item.Unselect();
}
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();
}
}