OnMouseOver() 不适用于 children

OnMouseOver() doesn't work on children

一个semi-newbie在这里!

我想为另一个制作一个碰撞框 object我想在 Unity3D 中用我的鼠标四处拖动。我的碰撞箱是一个带有对撞机的球体,我的主要 object 是一个鱼精灵。我做了一个简单的脚本来检查鼠标是否在 hitbox-object:

void OnMouseOver ()
{
    hover = true;
}


void OnMouseExit ()
{
    hover = false;
}

脚本已附加到命中框。我可以从检查器中查看 public 'hover' 布尔值是否为真。虽然我的 Hitbox 不是 'connected' 和任何其他 object,但这是按预期工作的。如果我将鱼精灵设为我的命中框的 child,它仍然有效。但是,一旦我将命中框设为鱼精灵的 child,它就不再有效了。

为什么会这样,是否有简单的解决方法?

我想让碰撞箱跟随鱼精灵。鱼精灵稍后将成为我想与游戏的其余部分互动的刚体。

如果根父对象有刚体,OnMouseOver 事件将不会作用于子对象。

我建议使用光线投射来检测 OnMouseOver 作为替代方法。

参考:http://answers.unity3d.com/questions/241844/child-objects-trigger-collider-not-working-when-pa.html