Table of Contents

Basculer automatiquement les objets Unity XR dans les scènes Unity

Les composants XR de 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 fournissant des fonctions AR sur beaucoup d'autres appareils, EasyAR propose une fonction de bascule automatique des objets Unity XR. Le contenu suivant décrit les modifications apportées par cette fonction aux objets de scène et son utilisation.

Avant de commencer

Présentation de la fonction

Comme l'implémentation sous-jacente d'AR Foundation de Unity sur téléphone repose sur ARCore et ARKit, elle ne peut être utilisée que sur un nombre limité d'appareils, notamment pas sur de nombreux téléphones Android chinois. Il est donc généralement recommandé de n'activer AR Foundation et les scripts fonctionnels associés que sur les appareils pris en charge. La fonction de bascule automatique des objets Unity XR réalise cette opération. Elle est principalement conçue pour le mobile AR et est désactivée par défaut sur les casques.

Lorsque la fonction complète est activée,

Dans la configuration par défaut, les conditions d'activation de la fonction sont les suivantes :

  • Activée sur Windows/Mac.
  • Au démarrage du switcher, si le loader mobile AR (ARKit/ARCore) est active, elle est activée.
  • Au démarrage du switcher, s'il existe d'autres loader que mobile AR (ARKit/ARCore), mais qu'aucun loader n'est active, elle est désactivée.
Note

Les composants de XR Interaction Toolkit ne sont pas contrôlés par cette fonction, et leur disponibilité dans EasyAR n'a pas été vérifiée. En théorie, les fonctions qui utilisent uniquement le GameObject Unity.XR.CoreUtils.XROrigin et sa Camera devraient fonctionner normalement. En cas de comportement anormal, vous pouvez essayer de définir ARSession.ARCenterMode sur ARSession.ARCenterMode.SessionOrigin. Si la fonction reste anormale, il faut implémenter un contrôle personnalisé des composants XR Interaction Toolkit et désactiver les composants associés lorsque FrameSource n'hérite pas de ARFoundationFrameSource.

Méthode de configuration

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

alt text

Le comportement des options de l'image est le suivant :

  • Editor : options du mode édition
  • Player : options du mode runtime
    • Enable : active le contrôle 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 : au démarrage du switcher, active la fonction si le loader mobile AR (ARKit/ARCore) est active. En général, 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 : au démarrage du switcher, désactive la fonction s'il existe d'autres loader que mobile AR (ARKit/ARCore), mais qu'aucun loader n'est active. Cette option est 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 fonction 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 sert généralement à restaurer les composants désactivés pendant l'édition.

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

Si vous devez personnaliser la bascule de ces composants, ou si le comportement d'EasyAR interfère avec le fonctionnement normal de certains composants, assurez-vous de désactiver ces options, puis personnalisez la bascule des composants selon les règles de base suivantes :

  1. Désactiver UnityEngine.XR.ARFoundation.ARSession dans l'éditeur (il s'exécute avant tous les autres scripts)
  2. Avant le démarrage d'AR Foundation, désactiver tous les composants Unity XR Core et AR Foundation ainsi que les composants ou fonctions associés à contrôler
  3. Si ARCoreARFoundationFrameSource ou ARKitARFoundationFrameSource est sélectionné pendant easyar.ARSession.Assemble(), activer tous les composants ou fonctions précédemment désactivés avant la fin de StartSession(); il est généralement recommandé de le faire dans la réponse à l'événement easyar.ARSession.AssembleUpdate
  4. Si un autre FrameSource est sélectionné pendant easyar.ARSession.Assemble(), laisser l'état inchangé

Rubriques connexes