Unity 之 UGUI Button 点击无响应问题汇总

Posted 陈言必行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 之 UGUI Button 点击无响应问题汇总相关的知识,希望对你有一定的参考价值。

近日开发遇到了的问题,,,Unity UGUI Button 点击不响应,,,

解决方法:

1, 查看所在的场景是否存在EventSystem,,若不存在那么当然检测不到了,这个物体时创建UI时Unity自动为我们创建的所以有时候会忽略


2,对按钮的坐标轴做了旋转,,,

(我遇到的问题,为了使其图片箭头朝向想要的方向,将其Y轴做了旋转,解决方案通过旋转Z轴得到自己想要的朝向,不对Y轴进行旋转),,当对Y轴旋转之后,使得按钮背面朝向我们(即点击方向),所以,触发不到按钮。 或者不对按钮进行旋转,将其某个轴的scale由1改为-1,也可以达到旋转的效果。


3, 查看按钮上的是否存在其他UI,把按钮遮盖住了,,,使用Button 的时候,点击上去默认是有明暗变化的,使用EventTrigger时,点击是没有明显效果的,可以打断点或者Debug输出一下,已查看效果…


4, 按钮的Target graphic属性没有赋值,这个属性必须赋值。可以在按钮物体上添加一个Text组件或者Image组件来作为按钮的Target graphic。


5, 按钮上注册的点击事件脚本丢失,,,或者在代码了写的注册事件没有被执行…


6, 在Canvas下有个Graphic Raycaster 的 Ignore Reversed Graphics这个选项,

当然这个选项默认是勾选的,不接受反向点击,为点击时检测的性能考虑.所以这种情况下,还是要靠做界面时留心下旋转.不建议关闭这个开关后面试了下,哪怕把这个勾关掉,如果我旋转90度自然也是无法接受点击的,看了下相关源码,是按这个Gameobject的Vector3.forward去算的.所以还是要小心当然可以考虑写一个脚本,检测这种forward是不是面向屏幕的,并校正一般来说,没有可点击的物体是背对屏幕或者是90度旋转的吧.


7,若场景中存在多个Canvas,则是被其他Canvas覆盖了,若是Screen Space - Overlay就将Sort Order 调大一点

若是Screen Space - Camera 就对下图位置的层级关系做调整就可以了…


8.评论区补充:
如果button的某个active父物体挂载有Canvas Group 如果Canvas Group 的block raycast 或者 interactable没有勾选,则button也会不响应点击


学习UGUI系列文章目录:

以上是关于Unity 之 UGUI Button 点击无响应问题汇总的主要内容,如果未能解决你的问题,请参考以下文章

Unity UGUI Button 无法点击问题一例

unity, ugui button 禁止重复点击

unity 3d 的 ugui button 怎么删除? Destory 不行

Unity3D 之UGUI 按钮

unity的ugui的button怎么用代码控制禁用

Unity界面UGUI遮挡的问题