2016-02-13 53 views
4

我的游戏使用统一的5个新的UI系统与画布。游戏本身可以通过函数OnMouseDown()在具有2D碰撞体的多个游戏对象上指示可触摸区域来拍摄碰撞,并且我可以通过改变游戏对象的位置来调整不同可触摸区域的优先级。然而,随着用户界面的添加,对UI元素(按钮,面板等)的任何接触不仅会触发UI元素,而且还会通过UI元素并触发可触摸区域。按下按钮时非常奇怪,不仅按钮被按下,而且还触发(视觉上)“UI层”后面的拍摄动作。让UI对象在联合5中触及的最优雅方式是什么?

我可以想到的一种方法是添加一个碰撞器到UI元素,然后在运行时改变它的位置和大小到世界空间,并调整它的position.z值来吞噬UI上的所有触摸。然而这看起来非常丑陋和不安全。

是否有任何优雅的方式让所有的UI元素(基本上是面板)吞咽触摸?谢谢!

+0

这是互联网上的十亿倍重复。你可以通过搜索节省大量时间。这是Unity中最根本的日常问题。 http://answers.unity3d.com/questions/784617/how-do-i-block-touch-events-from-propagating-throu.html – Fattie

+0

[在Unity中在UI中注册触摸]的可能副本(http:// stackoverflow.com/questions/32997075/registering-touch-on-ui-inity) – Fattie

+0

@Joe Blow非常感谢您的帮助!在提出问题之前,我做了一些研究,但没有找到任何最新和有用的信息。要么因为我的英语很烂,要么我的搜索技巧很糟糕。也许两个XD – ArtS

回答

相关问题