首页 > 解决方案 > 当对象是另一个对象的子对象时,它是不可点击的

问题描述

所以,我统一编写了一个简单的代码,当使用这个简单的代码单击对象时输出“clicked”:

private void OnMouseDown()
{
     Debug.Log("clicked");
}

单击时它会显示消息,但是当同一个对象是另一个对象的子对象时,它是不可单击的并且不显示消息。

当它是一个孩子时,我如何使它可以点击?

标签: unity3d

解决方案


您应该始终注意父对象的碰撞器。当您的子对象的对撞机在父对象的对撞机内时,OnMouseDown 触发器只会击中它(很好)碰撞的第一个对撞机。您需要可以访问子对象的对撞机。您可以取消激活父对象的碰撞器。您可以放大子对象的对撞机。或者您编写自己的方法,该方法仅检查具有给定标签的碰撞器。


推荐阅读