Unity UGUI Button 无法点击问题一例

Posted xixidaguai

tags:

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

理论上,只要一个按钮自己这一层或者子节点有一个控件勾选了RaycastTarget,并且按钮为Interactable的.并且不被其他可以点击的控件阻挡,那么这个按钮就可以被点击

在调一个界面时发现一个诡异的问题,有个按钮死活无法点击,EventSystem无法检测到.旁边的一个按钮却是ok的

对比了下,发现两者的区别是:

可点击的  x轴旋转-180

不可点击  无旋转

将不可点击的旋转-180,发现可以点击了

排查父节点,发现父节点挂了个Image为了做表现,旋转了180.

既然确定问题是旋转导致的,google了一下,发现了帖子:

https://forum.unity.com/threads/button-with-rotation-y-180-can-not-click.293482/

确认UGUI无法接受反向按钮的点击.

在和同事讨论时,同事提醒,有个开关是否接受反转的点击,即 Graphic Raycaster 的 Ignore Reversed Graphics这个选项

技术分享图片

当然这个选项默认是勾选的,不接受反向点击,为点击时检测的性能考虑.

所以这种情况下,还是要靠做界面时留心下旋转.不建议关闭这个开关

后面试了下,哪怕把这个勾关掉,如果我旋转90度自然也是无法接受点击的

看了下相关源码,是按这个Gameobject的Vector3.forward去算的.所以还是要小心

当然可以考虑写一个脚本,检测这种forward是不是面向屏幕的,并校正

一般来说,没有可点击的物体是背对屏幕或者是90度旋转的吧.

 

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

unity, ugui button 禁止重复点击

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

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

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

Unity技术手册-UGUI零基础详细教程-Button按钮

Unity 之 UGUI Button按钮组件详解