2024-04-21 22:38:26 +08:00
|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using UnityEngine;
|
|
|
|
using UnityEngine.Events;
|
|
|
|
using UnityEngine.EventSystems;
|
|
|
|
|
|
|
|
public class UICallbacks : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
|
|
|
|
{
|
2024-05-10 15:56:39 +08:00
|
|
|
private bool _isHovering;
|
|
|
|
private bool _hoverActionActivated;
|
|
|
|
private float _hoveredTime;
|
|
|
|
private float _timeBeforeHoverActivate = 1.5f;
|
2024-04-21 22:38:26 +08:00
|
|
|
public UnityEvent MouseHover;
|
|
|
|
public UnityEvent MouseHoverEnd;
|
|
|
|
|
|
|
|
public void OnPointerEnter(PointerEventData eventData)
|
|
|
|
{
|
2024-05-10 15:56:39 +08:00
|
|
|
_hoverActionActivated = false;
|
|
|
|
_isHovering = true;
|
|
|
|
_hoveredTime = 0;
|
2024-04-21 22:38:26 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
public void OnPointerExit(PointerEventData eventData)
|
|
|
|
{
|
2024-05-10 15:56:39 +08:00
|
|
|
_isHovering = false;
|
2024-04-21 22:38:26 +08:00
|
|
|
MouseHoverEnd.Invoke();
|
|
|
|
}
|
|
|
|
|
2024-05-10 15:56:39 +08:00
|
|
|
private void Update()
|
|
|
|
{
|
|
|
|
if (_isHovering && !_hoverActionActivated)
|
|
|
|
{
|
|
|
|
_hoveredTime += Time.deltaTime;
|
|
|
|
if (_hoveredTime >= _timeBeforeHoverActivate)
|
|
|
|
{
|
|
|
|
_hoverActionActivated = true;
|
|
|
|
MouseHover.Invoke();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-04-21 22:38:26 +08:00
|
|
|
public void SetTooltipText(string text)
|
|
|
|
{
|
|
|
|
ModelViewerInterface.GetInstance().Tooltip.SetAsLastSibling();
|
|
|
|
ModelViewerInterface.GetInstance().TooltipText.text = text;
|
|
|
|
}
|
|
|
|
}
|