Mengakses status input di MRTK — MRTK2

Dimungkinkan untuk secara 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 atas 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.

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

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

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

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

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

Lihat juga