Files
2025-05-26 00:46:28 +02:00

65 lines
1.5 KiB
C#

using UnityEngine;
using UnityEngine.UI;
namespace XRMultiplayer
{
[RequireComponent(typeof(Toggle))]
public class TooltipUI : MonoBehaviour
{
[SerializeField] GameObject m_TooltipObject;
[SerializeField] bool m_StartShowing = false;
Toggle m_Toggle;
void Awake()
{
if (!TryGetComponent(out m_Toggle) || m_TooltipObject == null)
{
Utils.Log($"{gameObject.name} Missing Setup Requirements! Disabling Now.", 2);
gameObject.SetActive(false);
enabled = false;
return;
}
m_Toggle.onValueChanged.AddListener(OnToggle);
ResetTooltip();
}
void OnDestroy()
{
m_Toggle.onValueChanged.RemoveListener(OnToggle);
}
void OnToggle(bool toggle)
{
if (toggle)
{
ShowTooltip();
}
else
{
HideTooltip();
}
}
public void ShowTooltip()
{
m_TooltipObject.SetActive(true);
}
public void HideTooltip()
{
if (m_Toggle.isOn) return;
m_TooltipObject.SetActive(false);
}
public void ResetTooltip()
{
m_Toggle.SetIsOnWithoutNotify(false);
HideTooltip();
if (m_StartShowing)
{
m_Toggle.isOn = true;
}
}
}
}