Files
BingoGrassland/Assets/BingoSun/Scripts/Ossa/Lbvsa/TriggerBingo.cs
T
2026-04-20 13:49:36 +08:00

193 lines
5.5 KiB
C#

using UnityEngine;
using UnityEngine.EventSystems;
namespace BingoBrain.Core
{
public class TriggerBingo : EventTrigger
{
public VoidDataDelegate onClickDown;
public VoidDataDelegate onClickUp;
public VoidDataDelegate onClick;
public VoidDataDelegate onInitializePotentialDrag;
public VoidDataDelegate onBeginDrag;
public VoidDataDelegate onDrag;
public VoidDataDelegate onEndDrag;
public VoidDataDelegate onDrop;
public VoidDataDelegate onPointerEnter;
public VoidDataDelegate onPointerExit;
public VoidDataDelegate onScroll;
public VoidBaseDataDelegate onSubmit;
public VoidBaseDataDelegate onSelect;
public VoidBaseDataDelegate onDeselect;
public VoidBaseDataDelegate onUpdateSelect;
[HideInInspector]
public BoxCollider2D boxCollider2D;
[HideInInspector]
public BoxCollider boxCollider;
public static TriggerBingo Get(GameObject go)
{
TriggerBingo listener = go.GetComponent<TriggerBingo>();
if (listener == null)
listener = go.AddComponent<TriggerBingo>();
return listener;
}
public static TriggerBingo Get(Component component)
{
return Get(component.gameObject);
}
public static TriggerBingo GetForm2D(GameObject go, bool isAutoCreateCollider = true)
{
if (isAutoCreateCollider)
{
if (!go.GetComponent<BoxCollider2D>())
{
go.AddComponent<BoxCollider2D>();
}
}
return Get(go);
}
public static TriggerBingo GetForm2D(Component component, bool isAutoCreateCollider = true)
{
return GetForm2D(component.gameObject, isAutoCreateCollider);
}
public static TriggerBingo GetForm3D(GameObject go, bool isAutoCreateCollider = true)
{
if (isAutoCreateCollider)
{
if (!go.GetComponent<BoxCollider>())
{
go.AddComponent<BoxCollider>();
}
}
return Get(go);
}
public static TriggerBingo GetForm3D(Component component, bool isAutoCreateCollider = true)
{
return GetForm3D(component.gameObject, isAutoCreateCollider);
}
public BoxCollider2D GetBoxCollider2D()
{
if (!boxCollider2D)
{
boxCollider2D = gameObject.AddComponent<BoxCollider2D>();
}
return boxCollider2D;
}
public BoxCollider GetBoxCollider()
{
if (!boxCollider)
{
boxCollider = gameObject.AddComponent<BoxCollider>();
}
return boxCollider;
}
public override void OnPointerEnter(PointerEventData data)
{
if (onPointerEnter != null) onPointerEnter(data);
}
public override void OnPointerExit(PointerEventData data)
{
if (onPointerExit != null) onPointerExit(data);
}
public override void OnPointerDown(PointerEventData data)
{
if (onClickDown != null) onClickDown(data);
}
public override void OnPointerUp(PointerEventData data)
{
if (onClickUp != null) onClickUp(data);
}
public override void OnPointerClick(PointerEventData data)
{
if (onClick != null) onClick(data);
}
public override void OnInitializePotentialDrag(PointerEventData data)
{
if (onInitializePotentialDrag != null) onInitializePotentialDrag(data);
}
public override void OnBeginDrag(PointerEventData data)
{
if (onBeginDrag != null) onBeginDrag(data);
}
public override void OnDrag(PointerEventData data)
{
if (onDrag != null) onDrag(data);
}
public override void OnEndDrag(PointerEventData data)
{
if (onEndDrag != null) onEndDrag(data);
}
public override void OnDrop(PointerEventData data)
{
if (onDrop != null) onDrop(data);
}
public override void OnScroll(PointerEventData data)
{
if (onScroll != null) onScroll(data);
}
public override void OnSubmit(BaseEventData data)
{
if (onSubmit != null) onSubmit(data);
}
public override void OnSelect(BaseEventData data)
{
if (onSelect != null) onSelect(data);
}
public override void OnDeselect(BaseEventData data)
{
if (onDeselect != null) onDeselect(data);
}
public override void OnUpdateSelected(BaseEventData data)
{
if (onUpdateSelect != null) onUpdateSelect(data);
}
public void ClearAllEvent()
{
onClickDown = null;
onClickUp = null;
onClick = null;
onInitializePotentialDrag = null;
onBeginDrag = null;
onDrag = null;
onEndDrag = null;
onDrop = null;
onPointerEnter = null;
onPointerExit = null;
onScroll = null;
onSubmit = null;
onSelect = null;
onDeselect = null;
onUpdateSelect = null;
}
private void OnDestroy()
{
ClearAllEvent();
}
}
}