2014-06-08 101 views
1

我是Vuforia的新手。在Unity3d中使用Vuforia SDK進行ARCamera的Raycast問題

腳本添加到的gameobject是一個3d對象,它在用戶定義的觸發圖像上可見。

我知道這不是一個新問題,我已經通過了官方Vuforia討論博客上的每個帖子/帖子,但問題仍然存在。而這個問題似乎非常重要。

我有以下腳本附在我的遊戲對象:

void Update() 
{ 
    if (Input.touchCount == 1) 
    { 
     // Touches performed on screen 
     Ray ray; 
     RaycastHit hit; 
     Debug.Log ("2"); 
     if(Camera.main != null) 
     { 
      Debug.Log ("3"); 
      ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); 
      hit = new RaycastHit(); 
      Debug.Log ("33"); 
      if(Physics.Raycast(ray, out hit)) 
      { 
       Debug.Log ("4"); 
      } 
        } 
      } 
    } 

當我運行遊戲對象現場,觸摸,調試控制檯顯示

但不是4.不知何故,這射線不擊中對象。

該腳本適用於普通相機。任何人都可以請點亮這個。

感謝

回答

4

(據我可以告訴)Vuforia不使用碰撞檢測ARCamera。相反,還有另一個「背景相機」(如果你在Unity中運行你的應用程序並暫停它,你可以看到它;你可以在層次結構窗格中找到它)。要訪問它使用

Camera.allCameras[0] 

代替

Camera.main 

希望幫助

3

我認爲這是對撞機類ARCamera之間的錯誤,但解決的辦法是這樣的:

  1. 創建一個新場景
  2. 創建一個Cube或任何遊戲對象對撞機組件。
  3. 不刪除立方以任何理由
  4. 測試與命中的算法(觸摸或鼠標)

    using System.Collections; 
    using UnityEngine; 
    
    public class rayoPrueba : MonoBehaviour { 
    void start() {print("entro"); } 
    void Update() { 
    
         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
         if (Physics.Raycast(ray, 100)) 
          print("Si le jue"); 
         } 
        } 
    
  5. 更換mainCamera爲ARCamera

  6. 再次測試
  7. 將u`r ImageTarget中的立方體和真實模型
  8. 刪除立方體,讓我們跳舞!我不知道爲什麼,但錯誤被殺害這... ...(Y)...

訣竅是...決不撞機組件從現場失去了遊戲物體..

2

如果您正嘗試在3D模型上使用RayCast,您應該在3D模型上添加Box Collider Component。

相關問題