다음을 통해 공유


응시 — MRTK2

응시 는 사용자가 찾고 있는 위치에 따라 월드와 상호 작용하는 입력의 한 형태입니다. 응시는 두 가지 다른 맛에 존재합니다.

머리 응시

이러한 유형의 응시는 머리/카메라가 보고 있는 방향을 기반으로 합니다. 시선 응시를 지원하지 않는 시스템이나 하드웨어가 시선 응시를 지원할 수 있지만 올바른 사용 권한 및 설정 집합이 수행되지 않은 경우 헤드 응시가 활성화되어 있습니다.

헤드 응시는 일반적으로 홀로그램 프레임의 중앙에 배치한 다음 에어 탭 제스처를 수행하여 개체를 보는 것과 관련된 HoloLens 1 스타일 상호 작용과 관련이 있습니다.

시선 응시

이러한 유형의 응시는 사용자의 눈이 보는 위치를 기반으로 합니다. 시선 응시는 시선 추적을 지원하는 시스템에만 존재합니다. 시선 응시를 사용하는 방법에 대한 자세한 내용은 시선 추적 설명서를 참조하세요.

GazeProvider

응시 기능(머리와 눈 모두)은 GazeProvider에서 제공합니다. 이 공급자는 입력 시스템 프로필의 포인터 섹션에서 구성할 수 있습니다.

응시 구성 진입점

다른 입력 원본과 마찬가지로 응시 공급자는 포인터를 사용하여 장면의 개체와 상호 작용 합니다(포인터에 대한 자세한 내용은 이 문서 참조). 응시 공급자의 경우 포인터는 를 통해 InternalGazePointer 구현되며 프로필을 통해 구성되지 않습니다.

IMixedRealityGazeProviderIMixedRealityEyeGazeProvider를 구현하는 다른 클래스를 참조하도록 응시 공급자 유형을 변경하여 주식 GazeProvider를 대체 구현으로 바꿀 수 있습니다. GazeProvider를 다시 구현하는 것은 간단하지 않으므로 일반적으로 주식 GazeProvider(및 버그를 찾을 때 문제 제기)를 사용하는 것이 좋습니다.

대체 플랫폼 제공 응시 포즈

기본적으로 MRTK GazeProvider는 카메라 프레임의 중심을 응시 원점으로 사용합니다. HoloLens 2 Windows Mixed Reality 같은 일부 플랫폼은 또는 정의된 응시 포즈를 제공합니다. 응시 설정의 Use Head Gaze Override 설정을 통해 관리됩니다. 사용하도록 설정하면 대체 응시 재정의가 사용됩니다. 사용하지 않도록 설정하면 기본 프레임 중심 원본이 사용됩니다. 특히, HoloLens 2 경우 응시 각도는 대상 지정을 위해 머리를 사용하는 사용자의 편안함을 고려하기 위해 여러 각도로 높아질 것입니다.

사용량

현재 응시 대상을 가져오는 방법

이 샘플에서는 사용자 응시를 대상으로 하는 현재 게임 개체를 가져오는 방법을 보여 있습니다.

void LogCurrentGazeTarget()
{
    if (CoreServices.InputSystem.GazeProvider.GazeTarget)
    {
        Debug.Log("User gaze is currently over game object: "
            + CoreServices.InputSystem.GazeProvider.GazeTarget)
    }
}

현재 응시 방향 및 원점 가져오기 방법

이 샘플에서는 사용자 응시 방향과 원점(방향이 진행되는 지점)을 나타내는 Vector3을 가져오는 방법을 보여 줍니다.

void LogGazeDirectionOrigin()
{
    Debug.Log("Gaze is looking in direction: "
        + CoreServices.InputSystem.GazeProvider.GazeDirection);

    Debug.Log("Gaze origin is: "
        + CoreServices.InputSystem.GazeProvider.GazeOrigin);
}