Unity で Head 視線入力Head gaze in Unity

視線対象とするユーザーの主な方法は、ホログラムにアプリを作成しますMixed Realityします。Gaze is a primary way for users to target the holograms your app creates in Mixed Reality.

ヘッド視線の先を実装します。Implementing head gaze

概念的には、視線に接続するの決定は、順方向に、ヘッドセットが、ユーザーのヘッドから光線を投影することによって実装されますと射線が競合する内容。Conceptually, gaze is implemented by projecting a ray from the user's head where the headset is, in the forward direction they are facing and determining what that ray collides with. Unity では、ユーザーのヘッドの位置および方向が、メインの Unity を介して公開されるカメラ、特にUnityEngine.Camera.main.transform.forwardUnityEngine.Camera.main.transform.positionします。In Unity, the user's head position and direction are exposed through the Unity Main Camera, specifically UnityEngine.Camera.main.transform.forward and UnityEngine.Camera.main.transform.position.

呼び出すPhysics.RayCastで結果をRaycastHit衝突が発生した 3D ポイントなどの競合とその他の GameObject 注視レイに関する情報を格納する構造体競合しています。Calling Physics.RayCast results in a RaycastHit structure which contains information about the collision including the 3D point where collision occurred and the other GameObject the gaze ray collided with.

以下に例を示します。実装ヘッド視線入力Example: Implement head gaze

void Update()
{
       RaycastHit hitInfo;
       if (Physics.Raycast(
               Camera.main.transform.position,
               Camera.main.transform.forward,
               out hitInfo,
               20.0f,
               Physics.DefaultRaycastLayers))
       {
           // If the Raycast has succeeded and hit a hologram
           // hitInfo's point represents the position being gazed at
           // hitInfo's collider GameObject represents the hologram being gazed at
       }
}

ベスト プラクティスBest Practices

上記の例では、視線の先のターゲットを検索する update ループに 1 つ raycast を行う方法を示します、中には、これで gazed されているオブジェクトに関心が可能性のある任意のオブジェクトでこれを行うのではなく視線の先を管理する 1 つのオブジェクトで実行することをお勧めします。While the example above demonstrates how to do a single raycast in an update loop to find the Gaze target, it is recommended to do this in a single object managing gaze instead of doing this in any object that is potentially interested in the object being gazed at. これにより、アプリのフレームごとに 1 つだけの視線の先 raycast を実行して処理を保存できます。This lets your app save processing by doing just one gaze raycast each frame.

視線の先を視覚化します。Visualizing Gaze

実装する必要がありますを使用するマウス ポインターをターゲットと対話するコンテンツを含む、デスクトップと同様、カーソルユーザーの視線の先を表します。Just like on the desktop where you use a mouse pointer to target and interact with content, you should implement a cursor that represents the user's gaze. これにより、何で、ユーザーの信頼度と対話しようとしています。This gives the user confidence in what they're about to interact with.

これで、Mixed Reality Toolkit v2Gaze in Mixed Reality Toolkit v2

視線の先へのアクセス、入力マネージャー MRTK v2 でします。You can access gaze from the input Manager in MRTK v2.

関連項目See also