为什么我的Unity按钮需要多次点击才能正常工作?

7
正如标题所示,我有一个屏幕上有两个画布。它们都是彼此的副本,但只是为我的纵向和横向方向布局不同。当方向改变时,我会禁用包含Canvas的适当Gameobject。
现在,我从前一个画布中打开的其他按钮从未出现任何问题,但我的活动画布需要多次点击同一个按钮才能最终工作,这是我的问题。
我应该做些什么不同的事情吗?
编辑:在Unity Editor上测试时没有问题。只有在Android或iOS设备上才会出现问题。
请记住,它确实可以工作。只是需要无尽的尝试才能做到这一点。

我的按钮在中心。所以这适用于一般的按钮。但对我来说,它不是双击或三连击。我必须不断地点击才能最终注册。所以肯定有什么问题! - Augmented Jacob
通常射线投射检测与碰撞器相交。因此很可能,Unity在画布下使用它们来检测所点击的内容。无论我们如何称呼它们,当有两个物体与相机距离相等时,您遇到的问题听起来就像发生了什么。 - maZZZu
@maZZZu 但是当使用 SetActive(false) 使一个画布不活动时,这不应该覆盖它吗?无论如何,我会尝试一下并回复你。 - Augmented Jacob
@maZZZu 好的,它起作用了。如果你想把它打成答案,我会相应地标记它。 :) 谢谢! - Augmented Jacob
太好了,我的基于经验的猜测有所帮助!我尝试将所有内容都写成了答案。 - maZZZu
显示剩余3条评论
2个回答

2
通常,有时起作用,有时不起作用的点击是由于两个与相机距离相同的碰撞体引起的。

尝试更改按钮/画布的Z位置,以查看是否是这种情况。

射线投射(很可能在画布点击下使用)仅发送最接近碰撞体的onMouseDown事件。

此外,在Canvas上,如果其处于屏幕空间 - 相机模式,请调整图层顺序,以使没有两个画布位于同一层。

如果有两个在同一层上,则必须选择其中一个。在这种情况下,似乎Unity会随机选择其中任意一个。


0
我曾经遇到过同样的问题。在我的情况下,原因是我在同一个游戏对象上同时使用了TouchInputModule和StandaloneInputModule。只需移除其中一个输入模块即可解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接