存取 MRTK 中的輸入狀態

您可以逐一查看附加至輸入來源的控制器,以直接查詢 MRTK 中所有輸入的狀態。 MRTK 也提供便利的方法,讓您存取眼睛、手、head 和移動控制器的位置和旋轉。

如需透過逐一查看控制器,以及使用類別來查詢輸入的範例,請參閱 InputDataExample 場景 InputRayUtils

範例:存取位置、列印頭的旋轉、手 MRTK 中的眼睛

MRTK 的 InputRayUtils 類別提供便利的方法來存取手形、頭部光線、眼睛光線和移動控制器光線。

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

範例:存取位置、場景中所有作用中6DOF 控制器的旋轉

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

另請參閱