2017-07-28 3 views
1

あり、画面上で指をスワイプすることで、表面上のオブジェクトを配置する方法(@ryemoss答えhereためのおかげで)オブジェクトインスタンスが存在する領域に指が触れているかどうかを確認する方法はありますか?

質問は今、互いの上に物を置かないようにする方法です - 指が既にオブジェクトインスタンスが存在する領域に接触しているかどうかを確認するにはどうすればいいですか?、領域が空である場合にのみ新しいオブジェクトを配置しますか?

私が探しているのは、オブジェクトを必要に応じて少し重なり合わせる(互いの境界に触れる)可能性を含める必要があります。ここで

+0

レイキャストを行うことができますhttps://docs.unity3d.com/ScriptReference/Physics.Raycast.html:ヒットポイントは、子猫を含むレイが遭遇するオブジェクトの種類などの情報を提供します。 – Greg

答えて

0

は、既存の配置マーカー(ゲームオブジェクト)がタッチイベント中にタッチするかどうかを確認するSDK(check here)の中の統一サンプルからの抜粋です:あなたが必要なもの

 Touch t = Input.GetTouch(0); 
     Vector2 guiPosition = new Vector2(t.position.x, Screen.height - t.position.y); 
     Camera cam = Camera.main; 
     RaycastHit hitInfo; 

     if (t.phase != TouchPhase.Began) 
     { 
      return; 
     } 

     if (m_selectedRect.Contains(guiPosition)) 
     { 
      // do nothing, the button will handle it 
     } 
     else if (Physics.Raycast(cam.ScreenPointToRay(t.position), out hitInfo)) 
     { 
      // Found a marker, select it (so long as it isn't disappearing)! 
      GameObject tapped = hitInfo.collider.gameObject; 
      if (!tapped.GetComponent<Animation>().isPlaying) 
      { 
       m_selectedMarker = tapped.GetComponent<ARMarker>(); 
      } 
     } 

によって処理されます
if (Physics.Raycast(cam.ScreenPointToRay(t.position), out hitInfo)) 
関連する問題