44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using AibisDream;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using Yarn.Unity;
|
|
|
|
public class DialogueInteractable : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler
|
|
{
|
|
public Texture2D hoverCursor; // 鼠标悬停时的光标
|
|
|
|
public void OnPointerEnter(PointerEventData eventData)
|
|
{
|
|
// 通知管理器设置光标
|
|
DialogueManager.Instance.OnInteractableHover(this, true);
|
|
}
|
|
|
|
public void OnPointerExit(PointerEventData eventData)
|
|
{
|
|
// 通知管理器重置光标
|
|
DialogueManager.Instance.OnInteractableHover(this, false);
|
|
}
|
|
|
|
public void OnPointerClick(PointerEventData eventData)
|
|
{
|
|
// 通知管理器尝试触发对话
|
|
DialogueManager.Instance.TryTriggerDialogue(this);
|
|
}
|
|
private void OnMouseEnter()
|
|
{
|
|
// 用于处理 Sprite 的悬停事件
|
|
DialogueManager.Instance.OnInteractableHover(this, true);
|
|
}
|
|
|
|
private void OnMouseExit()
|
|
{
|
|
// 用于处理 Sprite 的离开事件
|
|
DialogueManager.Instance.OnInteractableHover(this, false);
|
|
}
|
|
|
|
private void OnMouseDown()
|
|
{
|
|
// 用于处理 Sprite 的点击事件
|
|
DialogueManager.Instance.TryTriggerDialogue(this);
|
|
}
|
|
} |