OnMouseUp在FPSController的子对象上[Unity 3d]

时间:2017-09-25 18:53:12

标签: c# unity3d

我有一个带有子对象的FPSController,这个对象被定义为一个孩子,因为它应该在玩家走路时与玩家一起移动。然后我在这个对象上放了一个带onMouseUP()的脚本,上面有一个盒子对撞器组件,用这个简单的代码:

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

}

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

3 个答案:

答案 0 :(得分:1)

您可以向此子对象添加Rigidbody组件,OnMouseUp()将起作用。

据我所知,父级刚体是唯一一个在点击子对撞机时获得任何调用的人,除非你给它自己的刚体或将它移出层次结构。

答案 1 :(得分:0)

检查:

a)你的班级来自MonoBehaviour

b)启用Physics.queriesHitTriggers

答案 2 :(得分:0)

我可以使用raycast工作,onMouseUp只是不起作用,我会很感激与它一起使用的解决方案,以防onMouseEnter或任何其他“OnMouse”触发器需要它。

使用raycast,我必须检查hit.collider.transform.name以实际获取子对象的名称,只需使用hit.transform.name将返回父名称。