feat(framework): 增强事件触发器支持交互锁定

This commit is contained in:
2026-02-26 17:18:27 +08:00
parent 6ccc6f1569
commit 144cea1efa
@@ -75,19 +75,19 @@ namespace AibisDream.Framework
public override void OnPointerEnter(PointerEventData data)
{
EventSystemEx.Instance.OnPointerEnter(_interaction);
if (_interaction != null) EventSystemEx.Instance.OnPointerEnter(_interaction);
base.OnPointerEnter(data);
}
public override void OnPointerExit(PointerEventData data)
{
EventSystemEx.Instance.OnPointerExit(_interaction);
if (_interaction != null) EventSystemEx.Instance.OnPointerExit(_interaction);
base.OnPointerExit(data);
}
public override void OnPointerDown(PointerEventData eventData)
{
if (_interaction.IsAvailable && !EventSystemEx.Instance.isLocked)
if (_interaction != null && _interaction.IsAvailable && !EventSystemEx.Instance.isLocked)
{
EventSystemEx.Instance.OnPointerDown(_interaction);
base.OnPointerDown(eventData);
@@ -96,8 +96,7 @@ namespace AibisDream.Framework
public override void OnPointerUp(PointerEventData eventData)
{
if (_interaction.IsAvailable && !EventSystemEx.Instance.isLocked)
if (_interaction != null && _interaction.IsAvailable && !EventSystemEx.Instance.isLocked)
{
EventSystemEx.Instance.OnPointerUp(_interaction);
if (eventData != null)
@@ -109,26 +108,38 @@ namespace AibisDream.Framework
public override void OnDrag(PointerEventData eventData)
{
EventSystemEx.Instance.OnDrag(_interaction);
base.OnDrag(eventData);
if (_interaction != null && _interaction.IsAvailable && !EventSystemEx.Instance.isLocked)
{
EventSystemEx.Instance.OnDrag(_interaction);
base.OnDrag(eventData);
}
}
public override void OnEndDrag(PointerEventData eventData)
{
EventSystemEx.Instance.OnEndDrag(_interaction);
base.OnEndDrag(eventData);
if (_interaction != null && _interaction.IsAvailable && !EventSystemEx.Instance.isLocked)
{
EventSystemEx.Instance.OnEndDrag(_interaction);
base.OnEndDrag(eventData);
}
}
public override void OnBeginDrag(PointerEventData eventData)
{
EventSystemEx.Instance.OnEndDrag(_interaction);
base.OnBeginDrag(eventData);
if (_interaction != null && _interaction.IsAvailable && !EventSystemEx.Instance.isLocked)
{
EventSystemEx.Instance.OnBeginDrag(_interaction);
base.OnBeginDrag(eventData);
}
}
public override void OnPointerClick(PointerEventData eventData)
{
// EventSystemEx.Instance.OnPointerClick(_interaction);
base.OnPointerClick(eventData);
if (_interaction != null && _interaction.IsAvailable && !EventSystemEx.Instance.isLocked)
{
// EventSystemEx.Instance.OnPointerClick(_interaction);
base.OnPointerClick(eventData);
}
}
}