如何在通过VertexHelper构建的网格上检测单击事件?

时间:2019-04-16 14:31:12

标签: c# unity3d mesh

我使用了Unity(https://docs.unity3d.com/ScriptReference/UI.Graphic.html)提供的示例来创建一个新的可视UI组件。

但是,我现在想检测新创建的网格物体上的click事件。为此,我实现了IPointerClickHandler接口,但是当我在GameObject的RectTransform框内单击但未在实际的Mesh上单击时(在RectTransform的旁边),可以检测到单击。

Screenshot (mesh in pink)

我尝试了此处为“非UI对象” https://stackoverflow.com/a/41392130/9989790建议的解决方案,但没有成功。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要在该对象上具有一个“ MeshCollider”组件。另外,您的相机需要具有“物理光线投射器”组件。光线从相机中投射出来,如果与您的网格碰撞器发生碰撞,则指针进入/退出(和潜在点击)事件将发送到您的对象。

但是即使这些必需的组件就位,您仍然需要当心可能会“窃取”鼠标单击的重叠对象。