50 lines
1.3 KiB
C#
50 lines
1.3 KiB
C#
|
|
using OTG.Lab06.Abilities;
|
||
|
|
using UnityEngine;
|
||
|
|
using UnityEngine.UI;
|
||
|
|
|
||
|
|
namespace OTG.Lab06.UI
|
||
|
|
{
|
||
|
|
public sealed class TooltipUI : MonoBehaviour
|
||
|
|
{
|
||
|
|
[SerializeField] private Text titleLabel;
|
||
|
|
[SerializeField] private Text descriptionLabel;
|
||
|
|
[SerializeField] private Text statsLabel;
|
||
|
|
|
||
|
|
private RectTransform rectTransform;
|
||
|
|
|
||
|
|
private void Awake()
|
||
|
|
{
|
||
|
|
rectTransform = transform as RectTransform;
|
||
|
|
Hide();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Show(AbilityData data, RectTransform anchor)
|
||
|
|
{
|
||
|
|
if (data == null)
|
||
|
|
{
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (rectTransform == null)
|
||
|
|
{
|
||
|
|
rectTransform = transform as RectTransform;
|
||
|
|
}
|
||
|
|
|
||
|
|
titleLabel.text = data.abilityName;
|
||
|
|
descriptionLabel.text = data.description;
|
||
|
|
statsLabel.text = $"Damage: {Mathf.RoundToInt(data.damage)}\nMana: {Mathf.RoundToInt(data.manaCost)}\nCooldown: {data.cooldown:0.#}s";
|
||
|
|
gameObject.SetActive(true);
|
||
|
|
|
||
|
|
if (rectTransform != null && anchor != null)
|
||
|
|
{
|
||
|
|
rectTransform.position = anchor.position + new Vector3(0f, 142f, 0f);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Hide()
|
||
|
|
{
|
||
|
|
gameObject.SetActive(false);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|