2016-07-16 8 views

答えて

1

光線は、開始位置と方向を持つベクトルです。の場合:

Ray ray = head.Gaze; 

あなたは、ユーザーが探している方向と出発点を得ています。カメラを前方に持ち、その位置をすぐに取得することと同じように考えられます。

Ray ray = new Ray(); 
ray.direction = Camera.main.transform.forward; 
ray.origin = Camera.main.transform.position; 

EDIT:)(

Raycasthit hitInfo; 
float distance = 10.0f; 
if(Physics.Raycast(ray.origin, ray.direction, out hitInfo, distance)){} 
+0

私は、カメラから世界へ、レイをキャストしたい場合は、10ユニットとコライダーの変換を取得します。可能ですか?私に例を教えてもらえますか?ありがとうございました :) –

0

はこれを実現するには、レイキャストを使用することができます:あなたはレイキャストを使用することになり、衝突をチェックするため、コメント

に基づいています。ここ は一例です:これは、メインカメラの位置から光線をキャストし10単位の最大距離で(直接前で)楽しみにして、出力がヒット変数内の情報をヒットするだろう

Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward); 
    RaycastHit hit; 

    if (Physics.Raycast(ray, out hit, 10)) 
    { 
     // test what the raycast hit by checking hit information. 
    } 

そのことができますから物事をテストする。

編集: head.Gaze以外の追加情報は提供していないので、私はそれが何かを伝えることはできませんが、正しく名前が付けられていれば、Ray(Camera。 main.transform.position、Camera.main.transform.forward);ので、あなたの代わりにそのようなレイキャストテスト書き込むことができます。

RaycastHit hit; 
    if (Physics.Raycast(head.Gaze, out hit, 10)) 
    { 
     // test what the raycast hit by checking hit information. 
    } 

を私たちは、頭部オブジェクトであり、視線のオブジェクト・タイプが何であるかを知る必要があるだろう。もしそれがレイであれば、私はあなたの頭部からの前方の方向のための光線として機能することを99.9%確信しています。あなたはいつもこれをテストすることができます:)

関連する問題