我的游戏使用Unity 5的新UI系统和画布。游戏本身可以通过几个带有2D碰撞器的游戏对象上的OnMouseDown()函数接收触摸以发射弹药,并且我可以通过改变游戏对象的position.z来调整不同可触摸区域的优先级。
然而,添加了UI后,任何对UI元素(按钮、面板等)的触摸不仅会触发UI元素(如果可能),而且还可以穿过UI元素并触发可触摸区域。当你按下一个按钮时,不仅按钮被按下,而且还会触发在“UI层”后面的射击动作(视觉上)。
我可以想到一种方法是向UI元素添加碰撞器,然后在运行时将其位置和大小更改为世界空间,并调整其position.z值以吞噬所有位于UI上的触摸。但是这似乎非常丑陋和不安全。
有没有一种优雅的方式让所有UI元素(基本上是面板)吞噬触摸?谢谢!
然而,添加了UI后,任何对UI元素(按钮、面板等)的触摸不仅会触发UI元素(如果可能),而且还可以穿过UI元素并触发可触摸区域。当你按下一个按钮时,不仅按钮被按下,而且还会触发在“UI层”后面的射击动作(视觉上)。
我可以想到一种方法是向UI元素添加碰撞器,然后在运行时将其位置和大小更改为世界空间,并调整其position.z值以吞噬所有位于UI上的触摸。但是这似乎非常丑陋和不安全。
有没有一种优雅的方式让所有UI元素(基本上是面板)吞噬触摸?谢谢!