You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity UI.Button无法触发Pointer事件求助

Unity ButtonEvents 脚本交互不触发的解决方法

你的代码本身实现没有问题,核心问题出在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:31:13