Bagikan melalui


Mengakses status input di MRTK — MRTK2

Dimungkinkan untuk langsung mengkueri status semua input di MRTK dengan melakukan iterasi pada pengontrol yang dilampirkan ke sumber input. MRTK juga menyediakan metode kenyamanan untuk mengakses posisi dan rotasi mata, tangan, kepala, dan pengontrol gerakan.

Lihat adegan InputDataExample untuk contoh kueri input baik melalui iterasi melalui pengontrol, dan dengan menggunakan InputRayUtils kelas .

Contoh: Posisi akses, rotasi kepala, tangan, mata di MRTK

Kelas MRTK InputRayUtils menyediakan metode kenyamanan untuk mengakses sinar tangan, sinar kepala, sinar tatapan mata, dan sinar pengontrol gerakan.

Tambahkan namespace layanan ini ke skrip Anda:

using Microsoft.MixedReality.Toolkit.Input;
using Microsoft.MixedReality.Toolkit.Utilities;

Kode sampel:

// Get the head ray
UnityEngine.Ray headRay = InputRayUtils.GetHeadGazeRay();

// Get the right hand ray
if (InputRayUtils.TryGetHandRay(Handedness.Right, out UnityEngine.Ray rightHandRay))
{
    // Right hand ray is available
}
else
{
    // Right hand ray is not available
}

Contoh: Posisi akses, rotasi semua pengontrol 6DOF aktif dalam adegan

Tambahkan namespace layanan ini ke skrip Anda:

using Microsoft.MixedReality.Toolkit;
using Microsoft.MixedReality.Toolkit.Input;

Kode sampel:

foreach (IMixedRealityController controller in CoreServices.InputSystem.DetectedControllers)
{
    // Interactions for a controller is the list of inputs that this controller exposes
    foreach (MixedRealityInteractionMapping interactionMapping in controller.Interactions)
    {
        // 6DOF controllers support the "SpatialPointer" type (pointing direction)
        // or "GripPointer" type (direction of the 6DOF controller)
        if (interactionMapping.InputType == DeviceInputType.SpatialPointer)
        {
            Debug.Log("Spatial pointer PositionData: " + interactionMapping.PositionData);
            Debug.Log("Spatial pointer RotationData: " + interactionMapping.RotationData);
        }

        if (interactionMapping.InputType == DeviceInputType.SpatialGrip)
        {
            Debug.Log("Spatial grip PositionData: " + interactionMapping.PositionData);
            Debug.Log("Spatial grip RotationData: " + interactionMapping.RotationData);
        }
    }
}

Lihat juga