Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Il est possible d’interroger directement l’état de toutes les entrées dans MRTK en itérant sur les contrôleurs attachés aux sources d’entrée. MRTK fournit également des méthodes pratiques pour accéder à la position et à la rotation des yeux, des mains, de la tête et du contrôleur de mouvement.
Consultez la scène InputDataExample pour obtenir un exemple d’interrogation d’entrée à la fois par itération sur des contrôleurs et à l’aide de la InputRayUtils
classe .
Exemple : position d’accès, rotation de la tête, des mains, des yeux dans MRTK
La classe de InputRayUtils
MRTK fournit des méthodes pratiques pour accéder aux rayons de la main, à la tête, aux rayons du regard et aux rayons du contrôleur de mouvement.
Ajoutez ces espaces de noms à votre script :
using Microsoft.MixedReality.Toolkit.Input;
using Microsoft.MixedReality.Toolkit.Utilities;
Exemple de code :
// 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
}
Exemple : Position d’accès, rotation de tous les contrôleurs 6DOF actifs dans la scène
Ajoutez ces espaces de noms à votre script :
using Microsoft.MixedReality.Toolkit;
using Microsoft.MixedReality.Toolkit.Input;
Exemple de code :
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);
}
}
}