Class ARSession
- Espace de noms
- easyar
- Assembly
- EasyAR.Sense.dll
Un MonoBehaviour contrôlant une session AR dans la scène. Une session contient un ensemble de composants assemblés dans un ARAssembly, et contrôle le flux de données tout au long de son cycle de vie. Ce composant est le point d'entrée de la RA. Plusieurs instances actives simultanément ne sont pas autorisées.
Toutes les fonctionnalités des composants EasyAR ne peuvent être utilisées qu'après StartSession().
Le transform relatif entre le Camera et certains composants AR est contrôlé par la session. L'un de ces objets est appelé le CenterObject ; il reste immobile dans la scène, tandis que les autres objets se déplacent par rapport à ce CenterObject. Cet objet est sélectionné en fonction de la valeur de CenterMode. Pour une description plus détaillée, consultez ARSession.ARCenterMode.
[DefaultExecutionOrder(-2147483648)]
[DisallowMultipleComponent]
[RequireComponent(typeof(EasyARController), typeof(DiagnosticsController))]
[RequireComponent(typeof(FrameRecorder), typeof(FramePlayer), typeof(CameraImageRenderer))]
public class ARSession : MonoBehaviour
- Héritage
-
ARSession
Champs
AutoStart
Démarre automatiquement la session lors de MonoBehaviour.Start. Si défini sur false, vous devez appeler manuellement StartSession() pour démarrer la session.
[SerializeField]
[HideInInspector]
public bool AutoStart
CenterMode
Mode centre AR. Modifiable à tout moment, prenant effet immédiatement. Si le mode spécifié n'est pas disponible, il sera automatiquement ajusté à un mode disponible.
[SerializeField]
[HideInInspector]
public ARSession.ARCenterMode CenterMode
HorizontalFlip
Mode de rendu en miroir horizontal. Peut être modifié à tout moment et prend effet immédiatement. Disponible uniquement lors de l'utilisation du suivi d'image ou d'objet.
[SerializeField]
[HideInInspector]
public ARSession.FlipOptions HorizontalFlip
Propriétés
AssembleOptions
Les options d'assemblage de Session doivent être définies avant Assemble() (si non appelé précédemment, StartSession() effectuera un appel implicite).
public AssembleOptions AssembleOptions { get; }
Assembly
Assemblage du composant AR.
public ARAssembly Assembly { get; }
AvailableCenterMode
Mode central disponible pour la session actuelle.
public IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
CenterObject
L'objet central utilisé par la session dans le cadre actuel.
Cet objet représente un élément immobile dans l'espace Unity ou le noeud parent de cet objet. Il peut s'agir de Origin, Camera ou d'une certaine `target`. Une `Target` peut être un GameObject comportant un composant TargetController ou BlockRootController. Lors de l'utilisation de la carte spatiale éparse et d'EasyAR Mega, le véritable GameObject central est l'objet de carte ou de bloc localisé spécifiquement sous le noeud racine, tandis que CenterObject est le noeud parent de cet objet. Pour des explications plus détaillées, consultez la description de ARSession.ARCenterMode.
public GameObject CenterObject { get; }
Diagnostics
Composant de diagnostic de Session.
public DiagnosticsController Diagnostics { get; }
Origin
Point d'origine de session lorsque n'importe quelle fonction de suivi de mouvement est active.
Il sera automatiquement sélectionné dans la scène, ou créé par EasyAR ou une extension tierce de source d'images s'il n'existe pas. Lors de l'utilisation d'une source d'images intégrée, si le XROrigin du framework Unity XR existe, il sera sélectionné. Si le package AR Foundation n'est pas présent, seule l'origine XR avec une structure arborescente par défaut sera sélectionnée.
public GameObject Origin { get; }
Report
Rapport de session. Il est disponible pour consultation une fois l'assemblage terminé et est mis à jour lorsque l'état de session change. Il est utilisé pour visualiser des informations détaillées telles que les détails des dommages de session ou la disponibilité des composants.
public SessionReport Report { get; }
SpecificTargetCenter
Objet central spécifié manuellement. Lorsque CenterMode == SpecificTarget, CenterObject sera défini sur cet objet. Modifiable à tout moment, effet immédiat.
Cet objet doit comporter un composant TargetController ou BlockRootController.
public GameObject SpecificTargetCenter { get; set; }
State
L'état actuel de la session.
public ARSession.SessionState State { get; }
TrackingStatus
État de suivi de mouvement lorsque n'importe quelle fonction de motion-tracking est active.
public Optional<MotionTrackingStatus> TrackingStatus { get; }
enabled
Activer/désactiver la sortie pendant l'exécution de la session. Dans l'état désactivé, la session n'effectuera aucune sortie, l'image de la caméra (si contrôlée par EasyAR) et le transform de tous les objets de la session ne seront pas mis à jour.
public bool enabled { get; set; }
Méthodes
Assemble()
Utilisez AssembleOptions pour assembler la session. Si elle est appelée, elle sera appelée automatiquement dans StartSession().
public IEnumerator Assemble()
ImageCoordinatesFromScreenCoordinates(Vector2)
Transformation du système de coordonnées de l'écran ([0,1]^2) vers le système de coordonnées de l'image ([0,1]^2). pointInView doit être normalisé dans [0,1]^2. Non disponible sur les casques de réalité.
public Optional<Vector2> ImageCoordinatesFromScreenCoordinates(Vector2 pointInView)
Paramètres
pointInView
StartSession()
Démarre la session. Si AutoStart est true, elle sera appelée automatiquement dans MonoBehaviour.Start.
public void StartSession()
StopSession(bool)
Arrêtez le démarrage de la session. Toutes les mises à jour de transformation et de rendu d'image cesseront. Vous pouvez faire pivoter pour préserver la dernière image à l'arrêt, mais cela ne fonctionnera que lorsque EasyAR contrôle le rendu d'image (invalide pour AR Foundation, les casques, etc.).
public void StopSession(bool keepLastFrame)
Paramètres
keepLastFrame
Événements
AssembleUpdate
Événement de mise à jour de session Assemble(). Cet événement sera déclenché 1 à 2 fois lors d'un Assemble() (si aucun appel n'a été fait auparavant, StartSession() effectuera un appel implicite). La première fois survient lorsque l'Assemble est terminé. S'il n'y a pas de mise à jour de la liste des appareils en cours lors de la fin de l'Assemble, il n'y aura pas de deuxième appel. Sinon, le deuxième appel se produira lorsque la mise à jour de la liste des appareils sera terminée.
public event Action<SessionReport.AvailabilityReport> AssembleUpdate
InputFrameUpdate
Événement de mise à jour de la trame d'entrée, déclenché uniquement lorsque le InputFrame affiché dans la session change. Les appareils d'affichage tête haute ne reçoivent pas cet événement, et si une image de vue à travers existe, son rendu est effectué par l'appareil.
public event Action<InputFrame> InputFrameUpdate
PostSessionUpdate
Événement de mise à jour de session terminée, dont la fréquence est la même que MonoBehaviour.Update (les auteurs doivent implémenter cela correctement sur les casques). Lorsque cet événement est déclenché, toutes les modifications de transform contrôlées par EasyAR dans cette frame sont terminées.
public event Action PostSessionUpdate
StateChanged
Événement de changement de session State.
public event Action<ARSession.SessionState> StateChanged