允许点击或光线投射到某些项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了允许点击或光线投射到某些项目相关的知识,希望对你有一定的参考价值。
这有点难以解释,所以我尝试使用下面的图像尽我所能。
所以情况就是这样:玩家从库存中选择了钻取,并且弹出了“确认菜单”(A,S&D)。现在玩家必须选择其中一个动作(A =接受位置,S =将物品放回库存,D =保持移动物体周围)。在玩家选择其中一个动作之前,他不应该做其他事情。
问题是,如果玩家点击右上角的小地图,则会检测到按钮点击并打开菜单。如果玩家点击汽车(用Raycast检测到),玩家就会进入。如果玩家拖动操纵杆,他开始四处走动(使用Unity的操纵杆脚本)。这些都不应该被允许。
问题是:Unity是否有某种方法可以“防止对任何其他对象进行任何类型的点击检测,但这些”或“如果鼠标未在此对象上,则点击时不执行任何操作”?可能没有这样的东西,那么什么是最好的解决方法?
因为这些“点击做某事”动作是从各种风格(按钮和数十种不同脚本中的光线投射)的各个地方触发的,所以我试图通过在任何地方设置布尔值来避免这样做。开放的想法非常受欢迎。
答案
一个简单的解决方法是使用GUI Depth(https://docs.unity3d.com/ScriptReference/GUI-depth.html)。
如果“确认菜单”guiDepth位于顶部且所有其他GUI位于下方,则可以在覆盖整个屏幕之间添加另一个GUI;然后,Raycast会返回第一个元素,如果是中间的GUI,则什么都不做。
以上是关于允许点击或光线投射到某些项目的主要内容,如果未能解决你的问题,请参考以下文章