Unity Raycast事件优先级

时间:2017-05-06 04:08:03

标签: unity3d unity5

我尝试使用Unity的EventSystem来处理游戏中的输入。我已将物理2D射线播放器连接到我的相机,并且对象正在接收输入事件,例如OnPointerEnter,OnPointerExit等。但是,我需要对事件做一些更复杂的事情。我想为输入处理程序分配一定的优先级来处理输入事件。

例如,我创建了一个带有巨大边界框的GameObject来捕获所有鼠标点击。除非点击发生在可以“拦截”的另一个GameObject中,否则它可以正常工作。 Raycast。我想我可以通过在我的相机上添加多个Raycasters来解决这个问题,这个Raycasters会针对多个图层,但它似乎并没有起作用。

这有点棘手,因为如果我想让我的一个对象在OnMouseEnter中做某事,它必须拦截所有鼠标点击事件,因为它必须是Raycaster的目标。事件方法具有void返回类型,因此无法指定事件是否实际处理以及它是否应该"冒泡"到下一个处理程序。该系统似乎依赖于Raycaster,而且功能似乎有点缺乏。我自己已经破解了几件事并且大部分时间都在工作,但是不断出现的边缘情况很少,迫使我重新审视我如何处理输入。我想知道是否有干净的方法吗?

0 个答案:

没有答案