2016-05-29 15 views
0

私はカメラに物理レイキャスターを取り付けました。ポインタークリックイベントトリガーが正しく機能しています。しかし、私はソースコードからそれを行う必要があります。これらは私の試みです:Physics.RaycastはGoogle Cardboard/Google VRで動作しません

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!"); 
     } 
    }; 
} 

"ボタンがトリガーされました!"コンソールに表示されます。残念ながら「Collision detected!」そうではありません。ただし、ポインター・クリック・イベント・トリガーが正しく機能しています(インスペクターに接続されているコンポーネント)。何が起こっているのか、どうすれば分かりますか?なぜそれは働いていないのですか?

UPDATE:http://answers.unity3d.com/answers/1200449/view.html

答えて

1

は、ここで私はカメラからの光線を発射するために使用してきたいくつかのコードです(stackoverflowのは、私はこの質問を削除することはできません):私はここでこの答えに答えています。私は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

関連する問題