Share via


MRTK'de giriş durumuna erişme — MRTK2

Giriş kaynaklarına bağlı denetleyiciler üzerinde yineleme yaparak MRTK'daki tüm girişlerin durumunu doğrudan sorgulamak mümkündür. MRTK ayrıca göz, el, baş ve hareket kontrol cihazının konumuna ve rotasyonuna erişmek için kolaylık yöntemleri sağlar.

Hem denetleyiciler üzerinde yineleme yaparak hem de sınıfını kullanarak girişi sorgulama örneği için InputDataExample görünümüne InputRayUtils bakın.

Örnek: MRTK'da erişim konumu, baş, eller, gözler döndürme

MRTK sınıfı InputRayUtils , el ışını, baş ışını, göz bakışı ışını ve hareket kontrol cihazı ışınlarına erişmek için kolaylık yöntemleri sağlar.

Bu ad alanlarını betiğinize ekleyin:

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

Örnek kod:

// 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
}

Örnek: Erişim konumu, sahnede etkin olan tüm 6DOF denetleyicilerinin döndürmesi

Bu ad alanlarını betiğinize ekleyin:

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

Örnek kod:

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);
        }
    }
}

Ayrıca bkz.