Contrôle du flux de session
Durant l'exécution d'une session, il peut être nécessaire de modifier les composants de session, ce qui implique d'arrêter puis de redémarrer la session. Parfois, il peut aussi être nécessaire d'arrêter certaines sorties de session. Ce document explique comment contrôler le flux d'exécution d'une session.
Avant de commencer
- Comprendre les concepts de base, la composition et le flux de travail d'une session via Introduction à ARSession
- Savoir comment créer une session
Assemblage de session
L'assemblage est généralement déclenché automatiquement au démarrage de la session.
Le code suivant exécute implicitement le processus d'assemblage :
Session.StartSession();
Dans certains cas, par exemple pour une vérification préalable de disponibilité et de support matériel, vous pouvez utiliser Assemble() pour déclencher manuellement l'assemblage :
StartCoroutine(Session.Assemble());
Note
Assemble() renvoie une coroutine qui doit être lancée via StartCoroutine(IEnumerator).
Démarrer une session
AutoStart contrôle si la session démarre automatiquement. Si AutoStart est true (valeur par défaut), la session démarre automatiquement lors de MonoBehaviour.Start().
Une session peut aussi être démarrée manuellement en définissant d'abord AutoStart sur false. Utilisez ensuite StartSession() pour démarrer la session.
Session.StartSession();
Arrêter une session
Utilisez StopSession(bool) pour arrêter une session.
Session.StopSession(keepLastFrame);
Le paramètre keepLastFrame contrôle si la dernière image de la caméra physique est conservée après l'arrêt. Ceci est utile lors du basculement entre différentes sessions pour éviter le scintillement de l'image.
Note
keepLastFrame ne fonctionne que pour les sessions où le rendu est géré par EasyAR. En général, ce paramètre est inefficace avec AR Foundation ou les casques VR.
Stopper la sortie de session
Pendant l'exécution, la sortie de session peut être contrôlée via enabled.
Ce code arrête toutes les sorties de session. La session reste en cours d'exécution, mais ne met plus à jour aucun contenu (y compris l'image de la caméra physique rendue par EasyAR et les transformations de tous les nœuds contrôlés par EasyAR).
Session.enabled = false;
Arrêter le rendu de l'image de la caméra physique
Utilisez ARAssembly.CameraImageRenderer pour contrôler le rendu de l'image de la caméra physique.
Ce code arrête le rendu de l'image de la caméra physique :
if (Session.Assembly != null && Session.Assembly.CameraImageRenderer.OnSome)
{
Session.Assembly.CameraImageRenderer.Value.enabled = false;
}
Il est nécessaire de vérifier au préalable si ARAssembly.CameraImageRenderer existe.
Note
ARAssembly.CameraImageRenderer ne fonctionne que dans les sessions où le rendu est géré par EasyAR. Il est généralement inefficace avec AR Foundation ou les SDK de casques VR, où le rendu est pris en charge par ces technologies.
Prochaines étapes
- Essayez d'accéder aux composants AR pour découvrir plus de méthodes de contrôle des fonctionnalités AR
- Apprenez à récupérer les résultats d'exécution de session
- Comprenez comment vérifier la disponibilité et le support matériel