shenjianxing b7c053dd0c 修复bug
2025-03-27 10:16:08 +08:00

94 lines
1.9 KiB
C#

using GCSeries.Core.Input;
using QFramework;
using QFramework.Example;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class TipItem : MonoBehaviour
{
UIDeviceTip tip;
public string label;
public void Set(string label)
{
this.label = label;
#if VR
UIRoot.Instance.transform.Find("ZStylus").GetComponent<ZPointer>().OnObjectEntered.AddListener(OnObjEnter);
UIRoot.Instance.transform.Find("ZStylus").GetComponent<ZPointer>().OnObjectExited.AddListener(OnObjExit);
UIRoot.Instance.transform.Find("ZStylus").GetComponent<ZPointer>().OnClick.AddListener(OnClick);
#endif
}
private void OnClick(ZPointer arg0, int arg1, GameObject arg2)
{
if (arg2 == gameObject)
{
if (tip != null)
{
tip.Active(false);
}
}
}
#if VR
private void OnObjExit(ZPointer arg0, GameObject arg1)
{
if (arg1 == gameObject)
{
OnExit();
}
}
private void OnObjEnter(ZPointer arg0, GameObject arg1)
{
if (arg1 == gameObject)
{
OnEnter();
}
}
#endif
private void OnMouseEnter()
{
OnEnter();
}
public void OnEnter()
{
tip = UIKit.GetPanel<UIDeviceTip>();
if (tip == null)
{
tip = UIKit.OpenPanel<UIDeviceTip>(UILevel.PopUI);
tip.Set(label);
tip.Active(true);
}
else
{
tip.Set(label);
tip.Active(true);
}
}
public void OnExit()
{
if (tip != null)
{
tip.Active(false);
}
}
private void OnMouseExit()
{
OnExit();
}
private void OnMouseUpAsButton()
{
if (tip != null)
{
tip.Active(false);
}
}
}