2017-03-06 3 views
0

私はマップ上に3dマーカーを設定しています。次の目標は、どのマーカーがクリックされているかを検出することです。それぞれのマーカーが付いたUIボタンが付いていますが、それは良い方法ではありません。誰かが何か良いことを示唆できますか?3d世界の団結の3d gameobjectをクリックしてください

+0

レイキャストが動作するはずですが、ユニティの[EventSystem](HTTPS ://docs.unity3d.com/ScriptReference/EventSystems.EventSystem.html)を使用してクリックを検出する必要があります。これにより、コードで後で遭遇するいくつかの問題が取り除かれます。 * "** 5 **。3Dオブジェクト(メッシュレンダラー/任意の3Dコライダー)" * – Programmer

答えて

1

マーカーにコライダーがありますか?その場合、コライダーコンポーネントを持っている限り、ゲームオブジェクトに添付されたスクリプトコンポーネントでOnMouseDown関数を使用することができます。

は、そうでなければ、あなたがPhysic.RayCastとゲームオブジェクトに衝突型加速器を添付して検出することができ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

はい、私はゲームオブジェクトとの衝突を持っています。マウスダウンで仕事をした..ありがとう.. :) –

1

からこのスニペットを使用することができます。

https://docs.unity3d.com/ScriptReference/Physics.Raycast.html 
関連する問題