我有一个带有子对象的FPSController,这个对象被定义为一个孩子,因为它应该在玩家走路时与玩家一起移动。然后我在这个对象上放了一个带onMouseUP()的脚本,上面有一个盒子对撞器组件,用这个简单的代码:
public void OnMouseUp() {
Debug.Log("It works");
}
当我点击它时,它不会做任何事情。如果我将对象从FPSController的子节点中删除,则单击可正常工作。可能会发生什么以及如何解决它?
答案 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将返回父名称。