Acceso al estado de entrada en MRTKAccessing input state in MRTK

Es posible consultar directamente el estado de todas las entradas en MRTK mediante la iteración sobre los controladores asociados a los orígenes de entrada.It's possible to directly query the state of all inputs in MRTK by iterating over the controllers attached to the input sources. MRTK también proporciona métodos prácticos para acceder a la posición y rotación de los ojos, las manos, la cabeza y el controlador de movimiento.MRTK also provides convenience methods for accessing the position and rotation of the eyes, hands, head, and motion controller.

Consulte la escena InputDataExample para obtener un ejemplo de consulta de entrada tanto a través de la iteración sobre los controladores como mediante la InputRayUtils clase .See the InputDataExample scene for an example of querying input both via iterating over controllers, and by using the InputRayUtils class.

Ejemplo: Posición de acceso, rotación de la cabeza, las manos y los ojos en MRTKExample: Access position, rotation of head, hands, eyes in MRTK

La clase de MRTK proporciona métodos prácticos para acceder a los rayos de la mano, los rayos de la cabeza, los rayos de mirada de los ojos y los rayos InputRayUtils del controlador de movimiento.MRTK's InputRayUtils class provides convenience methods for accessing the hand ray, head ray, eye gaze ray, and motion controller rays.

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

Ejemplo: Posición de acceso, rotación de los controladores 6DOF activos en la escenaExample: Access position, rotation of all 6DOF controllers active in scene

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

Consulte tambiénSee also