Files
2026-03-04 10:03:45 +08:00

64 lines
1.5 KiB
C#

using UnityEngine.EventSystems;
using UnityEngine.Serialization;
namespace HeathenEngineering.SteamApi.Foundation.UI
{
public class SteamUserIconButton : SteamUserFullIcon, IPointerClickHandler, IEventSystemHandler
{
[FormerlySerializedAs("OnLeftClick")]
public UnityPersonaEvent onLeftClick;
[FormerlySerializedAs("OnMiddleClick")]
public UnityPersonaEvent onMiddleClick;
[FormerlySerializedAs("OnRightClick")]
public UnityPersonaEvent onRightClick;
[FormerlySerializedAs("OnLeftDoubleClick")]
public UnityPersonaEvent onLeftDoubleClick;
[FormerlySerializedAs("OnMiddleDoubleClick")]
public UnityPersonaEvent onMiddleDoubleClick;
[FormerlySerializedAs("OnRightDoubleClick")]
public UnityPersonaEvent onRightDoubleClick;
public void OnPointerClick(PointerEventData eventData)
{
if (eventData.button == PointerEventData.InputButton.Left)
{
if (eventData.clickCount > 1)
{
onLeftDoubleClick.Invoke(userData);
}
else
{
onLeftClick.Invoke(userData);
}
}
else if (eventData.button == PointerEventData.InputButton.Right)
{
if (eventData.clickCount > 1)
{
onRightDoubleClick.Invoke(userData);
}
else
{
onRightClick.Invoke(userData);
}
}
else if (eventData.button == PointerEventData.InputButton.Middle)
{
if (eventData.clickCount > 1)
{
onMiddleDoubleClick.Invoke(userData);
}
else
{
onMiddleClick.Invoke(userData);
}
}
}
}
}