允许点击或光线投射到某些项目

问题描述 投票:0回答:1

这有点难以解释,所以我尝试使用下面的图像尽我所能。

enter image description here

所以情况就是这样:玩家从库存中选择了钻取,并且弹出了“确认菜单”(A,S&D)。现在玩家必须选择其中一个动作(A =接受位置,S =将物品放回库存,D =保持移动物体周围)。在玩家选择其中一个动作之前,他不应该做其他事情。

问题是,如果玩家点击右上角的小地图,则会检测到按钮点击并打开菜单。如果玩家点击汽车(用Raycast检测到),玩家就会进入。如果玩家拖动操纵杆,他开始四处走动(使用Unity的操纵杆脚本)。这些都不应该被允许。

问题是:Unity是否有某种方法可以“防止对任何其他对象进行任何类型的点击检测,但这些”或“如果鼠标未在此对象上,则点击时不执行任何操作”?可能没有这样的东西,那么什么是最好的解决方法?

因为这些“点击做某事”动作是从各种风格(按钮和数十种不同脚本中的光线投射)的各个地方触发的,所以我试图通过在任何地方设置布尔值来避免这样做。开放的想法非常受欢迎。

unity3d click
1个回答
0
投票

一个简单的解决方法是使用GUI Depth(https://docs.unity3d.com/ScriptReference/GUI-depth.html)。

如果“确认菜单”guiDepth位于顶部且所有其他GUI位于下方,则可以在覆盖整个屏幕之间添加另一个GUI;然后,Raycast会返回第一个元素,如果是中间的GUI,则什么都不做。

© www.soinside.com 2019 - 2024. All rights reserved.