Table of Contents

Contrôle du flux de session

Pendant l'exécution de session, il est parfois nécessaire de modifier les composants de session. Dans ce cas, il faut arrêter puis redémarrer session. Il peut aussi être nécessaire d'arrêter certaines sorties de session. Cet article décrit comment contrôler le flux d'exécution de session.

Avant de commencer

Assemblage de session

Le processus d'assemblage est généralement déclenché automatiquement lors du démarrage de session.

Le code suivant exécute implicitement le processus d'assemblage.

Session.StartSession();

Dans certains cas, par exemple lorsqu'il faut vérifier la disponibilité et la prise en charge de l'appareil à l'avance, vous pouvez aussi utiliser Assemble() pour déclencher manuellement le processus d'assemblage de session:

StartCoroutine(Session.Assemble());
Note

Assemble() retourne une coroutine et doit être démarré avec StartCoroutine(IEnumerator).

Démarrer session

AutoStart contrôle si session démarre automatiquement. Si AutoStart vaut true (valeur par défaut), session démarre automatiquement lors de MonoBehaviour.Start().

Session peut aussi être démarrée manuellement. Cela nécessite de changer au préalable AutoStart en false. Vous pouvez ensuite utiliser StartSession() pour démarrer session.

Session.StartSession();

Arrêter session

Vous pouvez utiliser StopSession(bool) pour arrêter 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 de session. C'est utile lorsqu'il faut basculer entre différentes sessions et cela peut éviter le scintillement de l'écran.

Note

keepLastFrame ne peut contrôler que les sessions dont le rendu d'image est effectué par EasyAR. En général, ce paramètre n'est pas valide lors de l'utilisation d'AR Foundation ou de casques.

Arrêter la sortie de session

Lorsque session est en cours d'exécution, vous pouvez contrôler la sortie de session avec enabled.

Le code suivant peut arrêter toute la sortie de session. À ce moment, session est toujours en cours d'exécution, mais aucun contenu n'est mis à jour, y compris l'image de la caméra physique rendue par EasyAR et les transforms 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 par session

Vous pouvez utiliser ARAssembly.CameraImageRenderer pour contrôler le rendu de l'image de la caméra physique.

Le code suivant peut arrêter le rendu de l'image de la caméra physique:

if (Session.Assembly != null && Session.Assembly.CameraImageRenderer.OnSome)
{
    Session.Assembly.CameraImageRenderer.Value.enabled = false;
}

Notez qu'il faut d'abord vérifier si ARAssembly.CameraImageRenderer existe.

Note

ARAssembly.CameraImageRenderer n'est valide que dans les sessions dont le rendu d'image est effectué par EasyAR. En général, il n'est pas valide lors de l'utilisation d'AR Foundation ou de casques. Dans ce cas, le rendu de l'image de la caméra physique est effectué par AR Foundation ou le SDK du casque.

Étapes suivantes