in Assets/MRTK/Tools/RuntimeTools/Tools/MixedRealityInteractionTool/MixedRealityInteractionTool.cs [29:135]
private void Update()
{
if (listControllersTextMesh == null || leftHandedControllerTextMesh == null || rightHandedControllerTextMesh == null)
{
return;
}
listControllersTextMesh.text = string.Empty;
leftHandedControllerTextMesh.text = string.Empty;
rightHandedControllerTextMesh.text = string.Empty;
HashSet<IMixedRealityController> controllers = CoreServices.InputSystem?.DetectedControllers;
listControllersTextMesh.text = $"Detected {controllers?.Count} input source{(controllers?.Count > 1 ? "s:" : controllers?.Count != 0 ? ":" : "s")}\n";
if (controllers == null)
{
return;
}
foreach (IMixedRealityController controller in controllers)
{
listControllersTextMesh.text += $"{controller.InputSource.SourceName}\n";
TextMesh textMesh;
if (controller.ControllerHandedness == Handedness.Left)
{
textMesh = leftHandedControllerTextMesh;
}
else if (controller.ControllerHandedness == Handedness.Right)
{
textMesh = rightHandedControllerTextMesh;
}
else
{
continue;
}
textMesh.text = $"{controller.InputSource.SourceName}\n\n";
foreach (MixedRealityInteractionMapping interaction in controller.Interactions)
{
textMesh.text += $"{interaction.Description} [{interaction.MixedRealityInputAction.Description}]";
switch (interaction.InputType)
{
case DeviceInputType.SpatialPointer:
case DeviceInputType.SpatialGrip:
case DeviceInputType.Thumb:
case DeviceInputType.IndexFinger:
case DeviceInputType.MiddleFinger:
case DeviceInputType.RingFinger:
case DeviceInputType.PinkyFinger:
textMesh.text += $": {interaction.PoseData}";
break;
case DeviceInputType.PointerPosition:
case DeviceInputType.GripPosition:
textMesh.text += $": {interaction.PositionData}";
break;
case DeviceInputType.PointerRotation:
case DeviceInputType.GripRotation:
textMesh.text += $": {interaction.RotationData}";
break;
case DeviceInputType.PointerClick:
case DeviceInputType.ButtonPress:
case DeviceInputType.ButtonTouch:
case DeviceInputType.ButtonNearTouch:
case DeviceInputType.TriggerTouch:
case DeviceInputType.TriggerNearTouch:
case DeviceInputType.TriggerPress:
case DeviceInputType.ThumbStickPress:
case DeviceInputType.ThumbStickTouch:
case DeviceInputType.ThumbStickNearTouch:
case DeviceInputType.TouchpadTouch:
case DeviceInputType.TouchpadNearTouch:
case DeviceInputType.TouchpadPress:
case DeviceInputType.Select:
case DeviceInputType.Start:
case DeviceInputType.Menu:
case DeviceInputType.PrimaryButtonPress:
case DeviceInputType.PrimaryButtonTouch:
case DeviceInputType.PrimaryButtonNearTouch:
case DeviceInputType.SecondaryButtonPress:
case DeviceInputType.SecondaryButtonTouch:
case DeviceInputType.SecondaryButtonNearTouch:
case DeviceInputType.GripTouch:
case DeviceInputType.GripNearTouch:
case DeviceInputType.GripPress:
textMesh.text += $": {interaction.BoolData}";
break;
case DeviceInputType.Trigger:
case DeviceInputType.Grip:
textMesh.text += $": {interaction.FloatData}";
break;
case DeviceInputType.ThumbStick:
case DeviceInputType.Touchpad:
case DeviceInputType.DirectionalPad:
case DeviceInputType.Scroll:
textMesh.text += $": {interaction.Vector2Data}";
break;
}
textMesh.text += "\n";
}
}
}