Table of Contents

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

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