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就會返回父名稱。