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
- Découvrez les concepts de base, la composition et le workflow de session avec Présentation de ARSession
- Découvrez comment créer session
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
- Essayez d'accéder aux composants de fonctionnalités AR pour découvrir davantage de méthodes de contrôle des fonctionnalités AR
- Découvrez comment obtenir les résultats d'exécution de session
- Découvrez comment vérifier la disponibilité et la prise en charge de l'appareil