Table of Contents

Automatisches Umschalten von Unity XR-Objekten in Unity-Szenen

Die Unity XR-Komponenten (einschließlich AR Foundation) unterstützen nur begrenzte Geräte. Um AR Foundation auf unterstützten Geräten zu verwenden und gleichzeitig AR-Funktionen auf vielen anderen Geräten nutzen zu können, bietet EasyAR eine Funktion zum automatischen Umschalten von Unity XR-Objekten. Im Folgenden werden die Änderungen an Szenenobjekten und die Verwendungsmethode beschrieben.

Vorbereitung

Funktionsbeschreibung

Da Unitys AR Foundation auf Mobilgeräten auf ARCore und ARKit basiert und nur auf begrenzten Geräten funktioniert, insbesondere auf vielen chinesischen Android-Handys nicht verfügbar ist, wird generell empfohlen, AR Foundation und zugehörige Funktionsskripte nur auf unterstützten Geräten zu aktivieren. Die Funktion zum automatischen Umschalten von Unity XR-Objekten implementiert diese Operation und ist hauptsächlich für mobile AR konzipiert. Auf Headsets ist die Funktion in der Standardkonfiguration deaktiviert.

Bei vollständig aktivierter Funktion:

In der Standardkonfiguration ist die Funktion unter folgenden Bedingungen aktiviert:

  • Auf Windows/Mac aktiviert.
  • Wenn beim Start des Umschalters der mobile AR-Loader (ARKit/ARCore) aktiv ist.
  • Wenn beim Start des Umschalters andere Loader als mobile AR (ARKit/ARCore) vorhanden sind, aber kein Loader aktiv ist, ist die Funktion deaktiviert.
Anmerkung

Komponenten des XR Interaction Toolkit werden von dieser Funktion nicht gesteuert, ihre Verwendbarkeit in EasyAR wurde jedoch nicht verifiziert. Theoretisch sollten Funktionen, die nur das Unity.XR.CoreUtils.XROrigin-GameObject und dessen Kamera verwenden, normal funktionieren. Bei abnormalem Verhalten kann versucht werden, ARSession.ARCenterMode auf ARSession.ARCenterMode.SessionOrigin zu setzen. Wenn die Funktion immer noch nicht korrekt arbeitet, muss eine benutzerdefinierte Steuerung für XR Interaction Toolkit-Komponenten implementiert werden, um diese zu deaktivieren, wenn FrameSource nicht von ARFoundationFrameSource erbt.

Konfigurationsmethode

Diese Funktion kann über die Optionen unter Projekteinstellungen > EasyAR > Sense > Unity XR > Unity XR Auto Switch aktiviert oder deaktiviert werden.

alt text

Die Optionen konfigurieren das Verhalten wie folgt:

  • Editor: Optionen für den Editormodus
  • Player: Optionen für den Spielmodus
    • Enable: Aktiviert die Laufzeitsteuerung. Hinweis: Wenn diese Option deaktiviert ist, werden im Editormodus deaktivierte Komponenten zur Laufzeit nicht wiederhergestellt.
    • Enable If Desktop: Aktiviert auf Windows/Mac.
    • Enable If Mobile AR On Startup: Aktiviert, wenn beim Start des Umschalters der mobile AR-Loader (ARKit/ARCore) aktiv ist. Diese Option erfordert normalerweise, dass XR beim Start initialisieren unter Projekteinstellungen > XR Plug-in Management aktiviert ist.
    • Disable If Non Mobile AR Post Startup: Deaktiviert, wenn beim Start des Umschalters andere Loader als mobile AR (ARKit/ARCore) vorhanden sind, aber kein Loader aktiv ist. Diese Option wird normalerweise verwendet, wenn XR beim Start initialisieren unter Projekteinstellungen > XR Plug-in Management nicht aktiviert ist.
    • Restore AR Session When Disabled: Wenn die Funktion deaktiviert ist, werden alle deaktivierten UnityEngine.XR.ARFoundation.ARSession-Komponenten wiederhergestellt (aktiviert) (unabhängig davon, ob sie von EasyAR deaktiviert wurden). Diese Option wird normalerweise verwendet, um im Editor deaktivierte Komponenten wiederherzustellen.

Verwendung einer benutzerdefinierten Steuerungsmethode

Falls eine benutzerdefinierte Steuerung dieser Komponenten erforderlich ist oder EasyARs Verhalten bestimmte Komponenten beeinträchtigt, müssen diese Optionen deaktiviert werden. Gleichzeitig sollte die Komponentensteuerung gemäß folgenden Grundregeln angepasst werden:

  1. Deaktivieren Sie UnityEngine.XR.ARFoundation.ARSession im Editor (es wird vor allen anderen Skripten ausgeführt).
  2. Deaktivieren Sie vor Arbeitsbeginn von AR Foundation alle Unity XR Core-Komponenten, AR Foundation-Komponenten sowie zu steuernde relevante Komponenten oder Funktionen.
  3. Wenn während easyar.ARSession.Assemble() ARCoreARFoundationFrameSource oder ARKitARFoundationFrameSource ausgewählt wird, aktivieren Sie alle zuvor deaktivierten Komponenten oder Funktionen vor Abschluss von StartSession(). Dies wird normalerweise im Ereignishandler von easyar.ARSession.AssembleUpdate empfohlen.
  4. Wenn während easyar.ARSession.Assemble() eine andere FrameSource ausgewählt wird, bleiben die Einstellungen unverändert.

Verwandte Themen