65 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|