我的游戏使用统一的5个新UI系统和画布。游戏本身可以通过功能OnMouseDown()在几个游戏对象上接收触摸射击ammos,其中2D碰撞器指示可触摸区域,并且我可以通过改变游戏对象来调整不同可触摸区域的优先级。 position.z。
然而,添加了UI后,UI元素(按钮,面板等)上的任何触摸不仅会(如果可能)触发UI元素,而且还可以通过UI元素并触发可触摸区域。按下按钮时非常奇怪,不仅按下了按钮,还触发了(视觉上)" UI层"背后的拍摄动作。
我可以想到一种方法是在UI元素中添加一个碰撞器,然后在运行时将其位置和大小更改为世界空间,并调整它的position.z值以吞下UI上的所有触摸。然而,这似乎非常丑陋和不安全。
是否有任何优雅的方式让所有UI元素(基本上是面板)都可以吞下触摸?谢谢!
答案 0 :(得分:2)
您可以在相机上使用2d或3d物理raycaster来完成此操作。 BoredMormon有一个很棒的5分钟视频,关于如何做到这一点,我建议你查看它! https://www.youtube.com/watch?v=EVZiv7DLU6E