为了账号安全,请及时绑定邮箱和手机立即绑定

如何让 onPointerUp 事件注册,无论 OnPointerDown 是否已注册

如何让 onPointerUp 事件注册,无论 OnPointerDown 是否已注册

C#
繁星coding 2023-07-22 18:37:39
目前,我正在开发一款手机游戏,用户将在环境中单击并拖动某些内容,如果将其拖动到中心,则会打开一个风扇菜单,然后他们可以在其中选择一个选项。我遇到的问题是,当菜单打开时,用户的手指仍然会被按下,如果他们将手指拖动到菜单项上然后释放,则不会注册 OnPointerUp 事件。强制用户放开屏幕并按下菜单项会破坏我的游戏这部分的用户体验,因为它应该是从拖动元素的平滑过渡。如果我最初按下一个 UI 元素,然后将手指移动到另一个元素然后放开,该事件确实会注册,但它无法从源自按钮外部的 OnPointerDown 运行。
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

OnPointerDown您可以通过更改pointerPress事件数据的变量来更改接收事件的对象。


以下脚本将触发OnPointerUp您释放指针的任何对象:


public class TestUI : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerEnterHandler

{

    public void OnPointerDown(PointerEventData eventData) { Debug.Log(this.gameObject + " Down"); }

    public void OnPointerEnter(PointerEventData eventData) { eventData.pointerPress = gameObject; }

    public void OnPointerUp(PointerEventData eventData) { Debug.Log(this.gameObject + " Up"); }

}


查看完整回答
反对 回复 2023-07-22
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信