当精灵在其上方时,不会调用unity3d onMouseOver

unity3d unity5 unity2d

224 观看

1回复

833 作者的声誉

我有一个基于图块的网格系统,其中每个图块都有一个盒对撞机。这些磁贴使用:

OnMouseOver()

哪个正确调用。但是,如果我有另一个精灵,在与该图块相同的位置上有一个对撞机,它似乎会阻止该图块触发OnMouseOver()。

有什么好的解决办法?

作者: shell 的来源 发布者: 2017 年 9 月 15 日

回应 1


0

1695 作者的声誉

我看到2种可能的解决方案,尽管它们不使用OnMouseOver。

  1. 在您的FixedUpdate方法(基于其物理原理)中,使用从屏幕到鼠标位置的光线投射。在光线投射中,您可以定义应该与哪些层碰撞,从而可以确定检测到哪些对象。

  2. 如果仍然无法使用,另一种解决方案是制作一个不可见的对象,该对象在其update方法中始终将其位置设置为鼠标位置,然后向其添加碰撞器并将碰撞器设置为触发器,以便它可以自由移动。给对象添加标签“ Cursor”,并使用OnTriggerEnter代替OnMouseClick作为方法。

作者: Doh09 发布者: 2017 年 9 月 15 日
32x32