UI 按钮的 EventTrigger 不响应 OnPointerDown 和 OnPointerUp

问题描述

我一直在尝试制作一个按钮,在按下时执行操作,在释放时执行另一个操作。我发现人们通常使用 EventTriggers 来做那种事情,但是按钮对按下或释放没有反应,尽管层次结构中有一个 EventSystem。这是检查器上按钮的事件触发器(称为 MoveUp)。:

还有画布检查员。将 Blocking Mask 更改为 Everything 不会改变任何内容

还有 MainCamera Inspector。添加了 Graphics Raycaster,因为我阅读了它。

还有事件系统的检查员,即使我没有改变任何东西:

这是画布层次结构。

以及按钮脚本的片段:

有谁知道为什么会这样?希望我已经透露了足够的细节。提前致谢!

解决方法

您的设置存在一些问题。

Graphics Raycaster 应该将 Blocking Mask 设置为 Everything(默认)。

您可以移除 Physics 2D Raycaster。 Graphics Rayctaser 是您用于 UI 光线投射的工具。

您可以从 ButtonCode 单声道行为中删除 IPointerClick 处理程序。事件触发器组件实现所有必需的接口,并调用 ButtonCode 组件中的方法。

如果你遵循这个,你应该能够与你的按钮进行交互。

,

我终于找到了问题所在!受到米兰回答的启发,我尝试检查按钮是否可点击,但我发现不是。所以我做了一些研究,发现你可以在玩游戏时查看 Inspector 中 EventSystem 的底部,找出你点击 UI 的位置。原来我有一个文本,它的 Rect Transform 太大了,超过了按钮!感谢 MarkSouls 和 Milan Egon Votrubec 回答这个问题!