Partager via


Guide de portage d’entrée pour Unity

Vous pouvez porter votre logique d’entrée vers Windows Mixed Reality en utilisant l’une des deux approches suivantes :

  • API Input.GetButton ou Input.GetAxis générales d’Unity qui s’étendent sur plusieurs plateformes.
  • Les API UnityEngine.XRModule , qui offrent des données plus riches spécifiquement pour les contrôleurs de mouvement et les mains HoloLens.

API Générales Input.GetButton et Input.GetAxis

Unity utilise actuellement ses API générales et pour exposer des entrées pour le KIT de développement logiciel (SDK) Oculus et le KIT de développement logiciel (SDK) OpenVR.Input.GetAxisInput.GetButton Si vos applications utilisent déjà ces API pour l’entrée, ces API constituent le chemin le plus simple pour prendre en charge les contrôleurs de mouvement dans Windows Mixed Reality. Il vous suffit de remapper les boutons et les axes dans le gestionnaire d’entrée.

Pour plus d’informations, consultez la table de mappage des boutons/axes Unity et la vue d’ensemble des API Unity communes.

Importante

Si vous utilisez des contrôleurs HP Reverb G2, consultez Contrôleurs HP Reverb G2 dans Unity pour obtenir d’autres instructions de mappage d’entrée.

API d’entrée XR

Les versions Unity ont supprimé le XR. API WSA en faveur du Kit de développement logiciel (SDK) XR. Pour les nouveaux projets, il est préférable d’utiliser les API d’entrée XR dès le début. Pour plus d’informations, consultez Entrée Unity XR.

Si votre application génère déjà une logique d’entrée personnalisée pour chaque plateforme, vous pouvez utiliser les API d’entrée spatiale spécifiques à Windows dans l’espace de noms UnityEngine.InputSystem.XR . Ces API vous permettent d’accéder à des informations supplémentaires, telles que la précision de la position ou le type de source, pour distinguer les mains et les contrôleurs sur HoloLens.

Remarque

Si vous utilisez des contrôleurs HP Reverb G2, toutes les API d’entrée continuent de fonctionner, à l’exception de InteractionSource.supportsTouchpad, qui retourne false sans données de pavé tactile.

Pose de poignée et pose de pointeur

Windows Mixed Reality prend en charge les contrôleurs de mouvement dans différents facteurs de forme. La conception de chaque contrôleur diffère dans sa relation entre la position de la main de l’utilisateur et la direction naturelle vers l’avant que les applications utilisent pour pointer lors du rendu du contrôleur.

Pour mieux représenter ces contrôleurs, vous pouvez examiner deux types de poses pour chaque source d’interaction : la pose de poignée et la pose de pointeur. Vous exprimez toutes les coordonnées de pose dans les coordonnées du monde Unity.

Pose de la poignée

La pose de poignée représente l’emplacement de la paume d’une main détectée par un HoloLens, ou de la paume qui contient un contrôleur de mouvement. Sur les casques immersifs, utilisez cette pose pour restituer la main de l’utilisateur ou un objet tenu dans la main de l’utilisateur, tel qu’une épée ou un pistolet.

  • La position de la poignée est le centroïde de la paume lorsque vous tenez le contrôleur naturellement, ajusté à gauche ou à droite pour centrer la position à l’intérieur de la poignée.
  • L’axe droit de l’orientation de la poignée est le rayon qui est normal à votre paume, en avant de la paume gauche, en arrière de la paume droite, lorsque vous ouvrez complètement votre main pour former une pose plate à cinq doigts.
  • L’axe avant de l’orientation de la poignée est le rayon qui pointe vers l’avant à travers le tube formé par vos doigts non-pouce lorsque vous fermez partiellement votre main, comme si vous mainteniez le contrôleur.
  • L’axe haut de l’orientation de la poignée est l’axe haut impliqué par les définitions droite et avant.

Accédez à la pose de prise en main via le XR d’Unity. API InputTracking.GetNodeStates , comme XRNodeState.TryGetPosition ou XRNodeState.TryGetRotation.

Pose du pointeur

La pose du pointeur représente la pointe du contrôleur pointant vers l’avant. Cette pose est mieux utilisée pour le cast de rayons pointant vers l’interface utilisateur lorsque vous effectuez le rendu du modèle de contrôleur lui-même.

La pose de pointeur est disponible dans Unity uniquement par le biais de l’API spécifique à Windows MR, sourceState.sourcePose.TryGetPosition/Rotation, en passant en InteractionSourceNode.Pointer tant qu’argument .

Voir aussi