这很难解释,因此我尝试使用以下图片尽力而为。
所以情况是这样的:玩家从库存中选择了钻取,并且弹出了“确认菜单”(A,S& D)。现在玩家必须选择其中一个动作(A =接受位置,S =将物品放回库存,D =保持移动物体周围)。在玩家选择其中一个动作之前,他不应该做其他事情。
问题在于,如果玩家点击右上角的小地图,则会检测到按钮单击并打开菜单。如果玩家点击了汽车(通过 Raycast 检测到),则玩家进入。如果玩家拖动操纵杆他开始四处走动(使用 Unity的操纵杆脚本)。这些都不应该被允许。
问题:Unity是否有某种方法“防止对任何其他对象进行任何类型的点击检测,但这些”或“如果鼠标没有超过此对象则不做任何事情当点击“?可能没有那样的东西那么什么是最好的解决方法?
因为这些“点击做某事”动作是从各种风格(按钮和数十种不同脚本中的光线投射)的各个地方触发的,所以我试图通过在任何地方设置布尔值来避免这样做。开放的想法非常受欢迎。
答案 0 :(得分:0)
一个简单的解决方法是使用GUI深度(https://docs.unity3d.com/ScriptReference/GUI-depth.html)。
如果"确认菜单" guiDepth位于顶部,所有其他GUI都位于下方,您可以在覆盖整个屏幕之间添加另一个GUI;然后,Raycast将返回第一个元素,如果它是中间的GUI,则什么也不做。