Bemeneti állapot elérése AZ MRTK-ban – MRTK2

Az MRTK összes bemenetének állapotát közvetlenül lekérdezheti a bemeneti forrásokhoz csatolt vezérlők iterálásával. Az MRTK kényelmi módszereket is biztosít a szem, a kéz, a fej és a mozgásvezérlő pozíciójának és forgásának eléréséhez.

Tekintse meg az InputDataExample jelenetet, amely egy példát mutat be a bemenet lekérdezésére a vezérlők iterálásával és a InputRayUtils osztály használatával.

Példa: Hozzáférési pozíció, fej, kéz, szem forgása az MRTK-ban

Az MRTK osztálya kényelmi InputRayUtils módszereket biztosít a kézi sugár, a fejsugár, a szemnézés és a mozgásvezérlő sugarak eléréséhez.

Adja hozzá ezeket a névtereket a szkripthez:

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

Mintakód:

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

Példa: Hozzáférési pozíció, a jelenetben aktív összes 6DOF vezérlő elforgatása

Adja hozzá ezeket a névtereket a szkripthez:

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

Mintakód:

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

Lásd még