2017-03-06 148 views
0

我在我的地圖上填充3D標記。下一個目標是檢測哪個標記被點擊。附上每個標記的UI按鈕,但這不是一個好方法。任何人都可以建議更好的東點擊3D世界統一的3D遊戲對象

+0

當光線投射應該工作,團結的[的EventSystem](HTTPS ://docs.unity3d.com/ScriptReference/EventSystems.EventSystem.html)應該用於檢測點擊次數。這將消除您稍後在代碼中遇到的一些問題。檢查如何在重複的答案上這樣做*「** 5 **。對於3D對象(網格渲染器/任何3D對撞機)」* – Programmer

回答

1

您的標記是否有對撞機?如果是這種情況,那麼你可以使用你可以在附加到你的遊戲對象的腳本組件中使用OnMouseDown函數,只要它有一個對撞組件。

否則,你可以使用這個段從http://answers.unity3d.com/questions/34795/how-to-perform-a-mouse-click-on-game-object.html

function Update() 
{ 
    if (Input.GetMouseButtonDown(0)) 
    { 
     var hit : RaycastHit; 
     var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition); 

     if (Physics.Raycast (ray, hit, 100.0)) 
     { 
      // handle mouseclick 
     } 
    } 
} 
+0

是的,我有一個與gameobject對撞機。在鼠標下面做了工作..謝謝.. :) –

1

您可以在遊戲物體附上對撞機,並檢測與Physic.RayCast:

https://docs.unity3d.com/ScriptReference/Physics.Raycast.html