2016-05-29 48 views
0

我有一個物理Raycaster附加到相機。指針單擊事件觸發器工作正常。不過,我需要從源代碼中完成。這些是我的嘗試:Physics.Raycast不能與谷歌紙板/谷歌虛擬現實

private void SetOnPushButtonFireManager(){ 
    cardboard.OnTrigger +=() => { 
     Debug.Log("Button triggered!"); 
     RaycastHit hit; 
     // if(Physics.Raycast(headGameObject.GetComponent<GvrHead>().Gaze, out hit, Mathf.Infinity)){ 
     if(Physics.Raycast(cameraGameObject.transform.position, cameraGameObject.transform.forward, out hit, Mathf.Infinity)){ 
       Debug.Log("Collision detected!"); 
     } 
    }; 
} 

「Button triggered!」顯示在控制檯中。不幸的是「碰撞檢測!」不是。然而,指針單擊事件觸發器工作正常(檢查器中附帶的組件)。我怎麼知道發生了什麼事?爲什麼它不工作?

更新:我已經回答了這個答案在這裏:http://answers.unity3d.com/answers/1200449/view.html

(計算器不允許我刪除這個問題)

回答

1

下面是一些代碼,我一直在使用從相機火光。我沒有Google Cardboard,這是爲相機和鼠標指針設置的。

// Fire ray from camera 
    float rayLength = 2f 
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
    RaycastHit hit; 

    // If ray hits object within length 
    if (Physics.Raycast(ray, out hit, rayLength)) 
    { 
      Debug.Log("Collision detected!:); 
    } 
+0

當玩家按下按鈕時,我想從相機中央射出一束光線。所以我修改了你的代碼到'Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f,0.5f,0f));'不幸的是,這不起作用。無論如何,謝謝你的幫助! :) – chelder

+0

我已經在這裏回答了這個問題:http://answers.unity3d.com/answers/1200449/view.html我關閉了這個問題。 – chelder