Unity UI.Button无法触发Pointer事件求助
你的代码本身实现没有问题,核心问题出在Unity UI的射线检测拦截逻辑上:当你把脚本挂载到通过UI->Button->TextMeshPro创建的Button物体上时,默认情况下Button的子物体(TextMeshPro - Text)的Raycast Target属性是开启的,导致鼠标交互射线被子物体优先拦截,父物体上的ButtonEvents脚本无法接收事件(而挂载到画布时没有子物体拦截,因此能正常触发)。
以下是具体解决步骤:
关闭子Text物体的Raycast Target
选中Button下的TextMeshPro - Text子物体,在Inspector面板找到TextMeshPro - Text组件,取消勾选Raycast Target选项。确保Button物体的交互射线检测正常
选中Button GameObject,检查其自带的Image组件的Raycast Target是否处于勾选状态(必须开启才能让Button物体接收射线事件)。验证EventSystem状态
确认场景中的EventSystem物体存在,且Standalone Input Module(对应平台的输入模块)组件已启用,没有报错信息。
如果不想修改子物体设置,也可以直接把ButtonEvents脚本挂载到TextMeshPro - Text子物体上,同样能触发事件,但更推荐保持Button作为交互主体的第一种方案。
内容的提问来源于stack exchange,提问作者thathurtabit
相关产品推荐
相关产品推荐

