Contrôler le processus de suivi de Mega Go
Cet article explique comment contrôler les différentes fonctionnalités et paramètres du processus de suivi de Mega Go pour répondre aux besoins de différents scénarios d'application.
Avant de commencer
- Vérifiez Puis-je utiliser la fonction de géolocalisation ? pour confirmer que la bonne carte a été téléchargée.
Flux de travail du tracker
Le flux de travail du tracker est le suivant :
flowchart LR
subgraph startup_graph[Démarrage]
direction TB
sstart((Démarrage de la session))
create[Création native]
load(Chargement de la cible)
verify[Vérification d'essai]
init_g[[Initialisation]]
end
subgraph init_graph[Initialisation]
direction TB
init_{Initialisation 6DoF réussie<br>ou non 6DoF}
init[[Processus d'initialisation de suivi local]]
detecting[[Détection]]
tracking_g[[Suivi]]
end
subgraph tracking_graph[Suivi]
direction TB
tracking[[Suivi continu]]
end
subgraph stopping_graph[Arrêt]
direction TB
unload(Déchargement de la cible)
dispose[Destruction native]
sstop([Arrêt de la session])
end
sstart --> create --> load --> verify --> init_g
init --> init_ --> |Oui| detecting --> tracking_g
unload --> dispose --> sstop
init_ --> |Non| init
startup_graph --> init_graph
init_graph --> tracking_graph
tracking_graph --> stopping_graph
Le processus est globalement divisé en plusieurs étapes :
- Démarrage :
- Après le démarrage de la session, le tracker de la couche native est créé.
- La cible est chargée dans le tracker correspondant après Start().
- Pour les données d'essai, il est nécessaire de vérifier en ligne l'éligibilité à l'essai. Le processus ne passe à l'étape suivante qu'après une vérification réussie.
- Initialisation :
- Lors de l'utilisation d'une source de trame 6DoF, le processus d'initialisation de suivi local démarre.
- L'initialisation de suivi local peut prendre du temps, en fonction de la complexité de la scène et des performances de l'appareil, et généralement de l'algorithme utilisé au niveau inférieur de la source de trame.
- Lors de l'utilisation d'une source de trame non 6DoF, l'étape d'initialisation de suivi local est sautée et la détection démarre directement.
- Le processus de détection peut prendre du temps, en fonction de la facilité de localisation de la scène et de la qualité de la cartographie des données collectées.
- Dans la configuration par défaut, le contenu de cette étape n'est pas affiché. Vous pouvez contrôler ce comportement via les options du composant ActiveController.
- Lors de l'utilisation d'une source de trame 6DoF, le processus d'initialisation de suivi local démarre.
- Suivi :
- Le tracker suit en continu le bloc actuel.
- Dans la configuration par défaut, seul le contenu sous le nœud de la cible en état de suivi (TargetController.IsTracked ==
true) est affiché. Vous pouvez contrôler ce comportement via les options du composant ActiveController.
- Arrêt :
- Après l'arrêt de la session, la cible est déchargée et le tracker de la couche native est détruit.
Ajuster le niveau de prise en charge de l'appareil
La propriété MegaGoTrackerFrameFilter.MinInputFrameLevel de MegaGoTrackerFrameFilter est utilisée pour spécifier le niveau minimum d'appareil pris en charge par Mega.
![]()
Mega Go peut fonctionner sur presque tous les types de sources de trame, mais différentes sources de trame ont des impacts différents sur l'effet de suivi.
Par défaut, Mega sélectionne la source de trame de niveau le plus élevé pris en charge par l'appareil pour le suivi. La session de prise en charge de Mega Go dans la configuration par défaut est déjà configurée avec des sources de trame prises en charge pour 6DoF et 5DoF.
Pour prendre en charge une source de trame de niveau donné lors de l'exécution de Mega, deux conditions doivent être remplies :
- La source de trame requise est dans le groupe de sources de trame possibles de la session.
- MegaGoTrackerFrameFilter.MinInputFrameLevel est supérieur ou égal au niveau CameraTransformType de la source de trame requise.
Par exemple, pour prendre en charge le suivi 3DoF dans la session par défaut, vous devez :
- Ajouter ThreeDofCameraDeviceFrameSource au groupe de sources de trame de la session.
- Modifier MegaGoTrackerFrameFilter.MinInputFrameLevel en ThreeDof.
Encore un exemple, pour supprimer la prise en charge du suivi 5DoF dans la session par défaut, vous devez :
- Supprimer InertialCameraDeviceFrameSource du groupe de sources de trame de la session.
- Modifier MegaGoTrackerFrameFilter.MinInputFrameLevel en SixDof (même sans modification, sans source de trame 5DoF, 5DoF ne sera pas utilisé).
Si aucune source de trame ne répond aux conditions, l'assemblage de la session échouera.
Comprendre l'état actuel du système
Dans la configuration de session par défaut, les messages UI s'affichent à l'écran et contiennent des informations sur l'état de Mega Go.
L'état du tracker s'affiche à côté de Mega Go: , par exemple Tracking, VerifyingTrial, etc. Pendant le processus de détection et de suivi, les mises à jour de localisation s'affichent également en dessous.
![]()
L'état de suivi du bloc actuellement chargé s'affiche sous Mega Go: , sous la forme Block (<trackingStatus>): <name> (<id>). <name> est le nom du bloc, <id> est l'ID du bloc. trackingStatus peut être Tracking ou NotTracking, indiquant respectivement si le bloc actuel est en cours de suivi.

Vous pouvez utiliser la propriété MegaGoTrackerFrameFilter.Status pour obtenir l'état actuel et comprendre le fonctionnement du tracker. En cas d'état d'erreur, vous pouvez utiliser MegaGoTrackerFrameFilter.Error pour obtenir l'état d'erreur et effectuer le traitement approprié.
Le code suivant montre comment utiliser ces propriétés et comment traiter les états anormaux auxquels l'application doit généralement prêter attention :
void HandleTrackerStatus()
{
if (tracker.Status == MegaGoTrackerStatus.Error)
{
if (tracker.Error == MegaGoTrackerError.ServiceVerificationFailed)
{
// La vérification du service a échoué. Il est recommandé de vérifier si les données ont expiré ou sont invalides (après avoir passé de la version d'essai à la version officielle, les données de la version d'essai deviendront invalides).
}
else if (tracker.Error == MegaGoTrackerError.LocalVerificationFailed)
{
// La vérification locale a échoué. Il est recommandé de vérifier si le fichier de la cible est complet.
}
else
{
// Autre erreur.
}
}
else if (tracker.Status == MegaGoTrackerStatus.VerifyingTrial)
{
// Vérification de la cible d'essai en cours. Si la vérification ne peut pas être terminée en longtemps, il est recommandé de vérifier la connexion réseau.
}
else if (tracker.Status == MegaGoTrackerStatus.VIOInitializing)
{
// Initialisation de l'entrée VIO en cours. Si l'initialisation ne peut pas être terminée en longtemps, il est recommandé d'inviter l'utilisateur à optimiser son utilisation.
// Par exemple : "Essayez de diriger la caméra obliquement vers l'avant et de déplacer considérablement votre corps avec l'appareil de gauche à droite 5 fois."
}
}
Vous pouvez utiliser l'événement MegaGoTrackerFrameFilter.LocalizationRespond pour obtenir les mises à jour de localisation.
Mettre en pause et reprendre
En définissant MegaGoTrackerFrameFilter.enabled sur false, vous pouvez mettre en pause le suivi.
Par défaut, après la mise en pause du suivi, tout le contenu sous le nœud de tous les blocs sera masqué.
Thèmes connexes
- Meilleures pratiques pour la session AR de Mega Go explique comment créer et configurer une session AR pour Mega Go
- Ajouter une cible de suivi Mega Go explique comment ajouter un bloc de cible de suivi Mega Go et comment charger le modèle de bloc dans l'éditeur Unity pour faciliter le développement
- Ajouter un groupe de sources de trame explique comment modifier le groupe de sources de trame de la session
- Obtenir les résultats d'exécution de la session explique comment obtenir les résultats de suivi du composant de la session
- Messages UI explique comment utiliser les messages UI pour afficher l'état de la session