博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity UGUI Button 无法点击问题一例
阅读量:6979 次
发布时间:2019-06-27

本文共 717 字,大约阅读时间需要 2 分钟。

理论上,只要一个按钮自己这一层或者子节点有一个控件勾选了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度旋转的吧.

 

转载于:https://www.cnblogs.com/wmalloc/p/8444228.html

你可能感兴趣的文章
JavaScript - 数据类型和变量
查看>>
TCP/IP:IP选项处理
查看>>
【网摘】检测 iframe 是否加载完成
查看>>
cocos2dx 3.x(动态改变精灵的背景图片)
查看>>
cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)
查看>>
支付宝接入参考博客
查看>>
学习Spring中遇到关于BeanFactory及测试类的问题
查看>>
现实迷途 第七章 特殊客户
查看>>
找水王
查看>>
fgets()用法笔记
查看>>
mysql以及mysql bench安装教程
查看>>
Linear Regression with machine learning methods
查看>>
在 Azure 网站上使用 Memcached 改进 WordPress
查看>>
数据库备份定期删除程序的开发。
查看>>
启动Genymotion时报错Failed to initialize backend EGL display
查看>>
BZOJ 1040 ZJOI2008 骑士 树形DP
查看>>
联想S820 MIUI刷机包 MIUI 4.4.30 流畅执行 在线主题破解
查看>>
2017-2-23 C#基础 中间变量
查看>>
CSS中连接属性的排序
查看>>
windows加载符号小计
查看>>