Table of Contents

Automatiser le changement d'objets Unity XR dans une scène Unity

Les composants XR d'Unity (y compris AR Foundation) prennent en charge un nombre limité d'appareils. Pour utiliser AR Foundation sur les appareils pris en charge tout en utilisant les fonctionnalités AR sur de nombreux autres appareils, EasyAR fournit une fonctionnalité de changement automatique des objets Unity XR. Ce qui suit décrit les modifications apportées aux objets de scène et comment utiliser cette fonctionnalité.

Avant de commencer

Fonctionnalité

Comme AR Foundation d'Unity est implémenté en couche basse par ARCore et ARKit sur mobile, il ne peut être utilisé que sur un nombre limité d'appareils, en particulier sur de nombreux téléphones Android chinois où il ne fonctionne pas. Par conséquent, il est généralement recommandé d'activer AR Foundation et les scripts de fonctionnalités associés uniquement sur les appareils pris en charge. La fonctionnalité de changement automatique des objets Unity XR implémente cette opération, conçue principalement pour la RA mobile, et est désactivée par défaut sur les casques VR.

Lorsque la fonctionnalité complète est activée,

Par défaut, la fonctionnalité est activée sous les conditions suivantes,

  • Activée sur Windows/Mac.
  • Activée si le loader de RA mobile (ARKit/ARCore) est actif au démarrage du sélecteur.
  • Désactivée s'il existe d'autres loaders que la RA mobile (ARKit/ARCore) au démarrage du sélecteur, mais qu'aucun loader n'est actif.
Note

Les composants de XR Interaction Toolkit ne sont pas contrôlés par cette fonctionnalité, mais leur compatibilité avec EasyAR n'est pas vérifiée. En théorie, les fonctionnalités utilisant uniquement le GameObject Unity.XR.CoreUtils.XROrigin et sa caméra devraient fonctionner normalement. En cas de comportement anormal, essayez de définir ARSession.ARCenterMode sur ARSession.ARCenterMode.SessionOrigin. Si le problème persiste, une implémentation personnalisée du contrôle des composants XR Interaction Toolkit sera nécessaire, désactivant les composants concernés lorsque le FrameSource n'hérite pas de ARFoundationFrameSource.

Méthode de configuration

Cette fonctionnalité peut être activée ou désactivée via les options dans Project Settings > EasyAR > Sense > Unity XR > Unity XR Auto Switch.

alt text

Les options de la figure configurent le comportement comme suit :

  • Editor : options du mode édition
  • Player : options du mode exécution
    • Enable : active le contrôle au runtime. Remarque : lorsque cette option est désactivée, les composants désactivés en mode édition ne seront pas restaurés au runtime.
    • Enable If Desktop : active sur Windows/Mac.
    • Enable If Mobile AR On Startup : active si le loader de RA mobile (ARKit/ARCore) est actif au démarrage du sélecteur. Généralement, cette option nécessite que Initialize XR on Startup dans Project Settings > XR Plug-in Management soit coché.
    • Disable If Non Mobile AR Post Startup : désactive s'il existe d'autres loaders que la RA mobile (ARKit/ARCore) au démarrage du sélecteur, mais qu'aucun loader n'est actif. Généralement utilisée lorsque Initialize XR on Startup dans Project Settings > XR Plug-in Management n'est pas coché.
    • Restore AR Session When Disabled : lorsque la fonctionnalité est désactivée, restaure (active) tous les UnityEngine.XR.ARFoundation.ARSession désactivés (qu'ils aient été désactivés par EasyAR ou non). Cette option est généralement utilisée pour restaurer les composants désactivés en édition.

Utiliser une méthode de contrôle personnalisée

Si un changement personnalisé de ces composants est nécessaire, ou si le comportement d'EasyAR interfère avec le fonctionnement normal de certains composants, assurez-vous de désactiver ces options et personnalisez le changement de composants selon les règles de base suivantes :

  1. Désactivez UnityEngine.XR.ARFoundation.ARSession dans l'éditeur (il s'exécute avant tous les autres scripts)
  2. Désactivez tous les composants Unity XR Core, AR Foundation et les composants ou fonctionnalités associés à contrôler avant qu'AR Foundation ne commence à fonctionner
  3. Si ARCoreARFoundationFrameSource ou ARKitARFoundationFrameSource est sélectionné pendant easyar.ARSession.Assemble(), activez tous les composants ou fonctionnalités précédemment désactivés avant que StartSession() ne se termine, généralement recommandé dans le gestionnaire d'événements easyar.ARSession.AssembleUpdate
  4. Si un autre FrameSource est sélectionné pendant easyar.ARSession.Assemble(), laissez inchangé

Sujets connexes