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 Text文本组件详解
- Unity 之 UGUI Image图像组件详解
- Unity 之 UGUI Raw Image原始图像组件详解
- Unity 之 UGUI TextMeshPro控件详解
- Unity 之 UGUI Button按钮组件详解
- Unity 之 UGUI Toggle开关组件详解
- Unity 之 UGUI Slider滑动条组件详解
- Unity 之 UGUI Scrollbar滚动条组件详解
- Unity 之 UGUI Dropdown下拉选单组件详解
- Unity 之 UGUI Input Field输入组件详解
- Unity 之 UGUI Layout自动布局组件详解
- Unity 之 UGUI Scroll Rect滚动矩形组件详解
- Unity 之 UGUI RectTransform矩形变换组件详解
- Unity 之 UGUI Canvas画布组件详解
- Unity 之 UGUI EventSystem事件系统详解
- Unity 之 UGUI 优化实战经验总结
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/84575011
- 点赞
- 收藏
- 关注作者
评论(0)