2017-09-25 62 views
0

我有一个带有子对象的FPSController,这个对象被定义为一个孩子,因为它应该随着玩家一起移动。然后我把这个对象上onMouseUP()的脚本,和一个盒子撞机部件就可以了,这个简单的代码:OnMouseUp FPSController的子对象[Unity 3d]

public void OnMouseUp() { 
    Debug.Log("It works"); 

} 

当我点击它,它不会做任何事情。如果我将该对象从FPSController的子项中移除,请单击正常工作。可能会发生什么以及如何解决?

回答

1

您可以将Rigidbody组件添加到此子对象,OnMouseUp()将工作。

据我所知,当单击儿童碰撞器时,父刚体是唯一一个能够接受任何调用的人,除非您给它自己的刚体或将其移出层次结构。

+0

好/非常简单的解决方案..我不得不添加一个运动刚体 – raphadko

0

检查:

一)类从MonoBehaviour

B)Physics.queriesHitTriggers延伸,使

0

我可以使它工作中使用光线投射,onMouseUp是行不通的,我会欣赏可与其配合使用的解决方案,以防onMouseEnter或任何其他“OnMouse”触发器需要它。

使用raycast,我必须检查hit.collider.transform.name才能真正获得子对象的名称,只需使用hit.transform.name就会返回父名称。