Table of Contents

Wie man EasyAR-Funktionen auf dem Apple Vision Pro nutzt

Diese Anleitung führt Sie durch die Konfiguration von Unity- und Xcode-Projekten, um alle EasyAR-Kernfunktionen einschließlich Mega-Cloud-Lokalisierung für Apple-Vision-Pro-Anwendungen freizuschalten.

Voraussetzungen

  • Lernen Sie, wie man Kopfhörer-Beispiele verwendet
  • Stellen Sie sicher, dass Ihre Entwicklungsumgebung folgende Anforderungen erfüllt:
    • visionOS 2.0 oder höher
    • Xcode 16.0 oder höher mit visionOS-Simulator für die entsprechende visionOS-Version
    • Empfohlene Unity-Version: LTS-Version 6000.0.23 oder höher

Beantragung einer unternehmensweiten API-Genehmigung bei Apple Inc.

Da das Erfassen von Kamerabildern und -parametern auf dem Apple Vision Pro eine unternehmensweite API ist, die ein entitlement erfordert, müssen Sie bei Apple Inc. eine License-Datei mit diesem entitlement beantragen. Informationen zum Beantragen und Verwenden dieser Lizenz finden Sie unter Building spatial experiences for business apps with enterprise APIs for visionOS.

Wichtig

Die Bundle-ID im von Apple erhaltenen entitlement muss exakt mit der beim Erstellen des EasyAR Sense License Key eingegebenen übereinstimmen.

Auswahl des visionOS-App-Modus

Auf visionOS laufende Apps können ARKit-Daten nur im Immersive Space abrufen. Von Unity-Editor erstellte Apps müssen im Immersive Space basierend auf dem Rendering-Workflow und der API zwischen RealityKit with PolySpatial oder Metal Rendering with Compositor Services wählen.

Definitionen von Immersive Space finden Sie in der offiziellen Dokumentation von Apple.

Ausführliche Informationen zu Unitys App-Modi finden Sie im Unity-PolySpatial-Dokument unter visionOS Platform Overview.

Tipp

Empfehlungen zur Auswahl des App-Modus

  • Erste Wahl: RealityKit with PolySpatial

    Wenn Sie neu bei visionOS sind, empfehlen wir diesen Modus. Er bietet tiefe Integration in visionOS-Rendering-Features, hohe Stabilität und exzellente Rendering-Ergebnisse. Dieser Modus unterstützt keine benutzerdefinierten Code-Shader (HLSL/ShaderLab) und erfordert Shader Graph. Nur PolySpatial-kompatible Funktionen werden unterstützt (werden in MaterialX konvertiert).

    Unitys integrierte Standard (Built-in) und Lit (URP) Shader sind bereits offiziell angepasst und können direkt verwendet werden.

  • Fortgeschrittene/spezifische Anforderungen: Metal Rendering with Compositor Services

    Ideal für komplexe Projekte mit umfangreichen 3D-Asset-Migrationen oder benutzerdefinierten Shadern. Da Unity hier die gesamte Rendering-Logik übernimmt und RealityKit umgeht, sind Rendering-Ergebnisse oft weniger optimal und können unvorhergesehene Probleme verursachen.

EasyAR-Integrationstipp:

Beginnen Sie beim Einbinden von EasyAR immer mit RealityKit with PolySpatial. So isolieren Sie Variablen und vermeiden, dass Metal-Anpassungsprobleme mit AR-Fragen kollidieren.

Konfiguration im Unity-Projekt

Führen Sie folgende Konfigurationen im Unity-Projekt durch:

Notwendige Packages importieren

Unity 6 (empfohlen):

  • com.unity.xr.visionos (2.0.4+)
  • com.unity.polyspatial (2.0.4+)
  • com.unity.polyspatial.visionos (2.0.4+)
Wichtig

Alle Package-Versionen müssen exakt übereinstimmen.

Unity 6 wird priorisiert. Einige frühe Unity-2023.x-Versionen unterstützen visionOS noch nicht.

Unity 2022.3:

  • com.unity.xr.visionos (1.2.3)
  • com.unity.polyspatial (1.2.3)
  • com.unity.polyspatial.visionos (1.2.3)
Wichtig

Alle Package-Versionen müssen exakt identisch sein.

1.3.x wird nicht unterstützt. Verwenden Sie 1.2.3.

Build-Plattform auswählen

Navigieren Sie zu File > Build Profiles und wechseln Sie die Plattform zu visionOS.

Build_Platform wechseln

Input System konfigurieren

Stellen Sie sicher, dass das neue Input System Package verwendet wird:

Gehen Sie zu Edit > Project Settings > Player und setzen Sie Active Input Handling auf Input System Package(New).

Unity fordert möglicherweise einen Neustart des Projekts. Klicken Sie auf Apply, um die Änderungen zu übernehmen.

InputSystem-Änderungen übernehmen

XR Plug-in Management konfigurieren

Navigieren Sie zu Edit > Project Settings > XR Plug-in Management und aktivieren Sie unter dem visionOS-Tab in Plug-in Providers Apple visionOS.

visionOS-Plugin auswählen

Apple visionOS-Plugin konfigurieren

Gehen Sie zu Edit > Project Settings > XR Plug-in Management > Apple visionOS.

Wählen Sie basierend auf der vorherigen Erklärung den passenden App Mode.

AppMode auswählen

Anmerkung

Windowed-Modus läuft nicht im Immersive Space und unterstützt daher keine AR-Funktionen.

Hybrid-Modus erfordert manuelles Umschalten zwischen Metal und RealityKit. Aufgrund der Komplexität wird er nicht empfohlen. Details finden Sie in Unitys offizieller Modusbeschreibung.

Ändern Sie im selben Fenster folgende Einstellungen:

  • Fügen Sie unter World Sensing Usage Description eine Beschreibung hinzu.

  • Setzen Sie Metal Immersion Style auf Mixed.

  • Setzen Sie Reality Kit Immersion Style auf Mixed.

  • Aktivieren Sie IL2CPP Large Exe Workaround.

visionOS-Plugin-Konfiguration ändern

[Nur für RealityKit-Modus] TextMesh Pro Essentials importieren

Gehen Sie zu Edit > Project Settings > TextMesh Pro > Klicken Sie auf Import TMP Essentials

TMP Essentials importieren

Anmerkung

RealityKit with PolySpatial unterstützt derzeit nur TextMesh Pro-Text. Ohne Import wird kein Text gerendert.

[Nur für RealityKit-Modus] PolySpatial-Einstellungen

Navigieren Sie zu Edit > Project Settings > PolySpatial und nehmen Sie folgende Änderungen vor:

  • Setzen Sie Default Volume Camera Window Config auf Default Unbounded Configuration.

  • Aktivieren Sie Auto-Create Volume Camera

PolySpatial konfigurieren

Wenn Sie eine andere Default Volume Camera Window Config angeben, muss deren Mode Unbounded sein.

Mode auf Unbounded bestätigen

Entfernen Sie vorhandene Volume Camera-Objekte aus der Szene.

Volume Camera aus Szene löschen

Warnung
  • Volume Camera mit nicht-identity World Transform werden nicht unterstützt.
  • Falls aus besonderen Gründen eine einzelne benutzerdefinierte Volume Camera erforderlich ist:
    • Setzen Sie deren World Transform auf identity.
    • Stellen Sie sicher, dass der Mode in Volume Camera Window Configuration auf Unbounded gesetzt ist.
    • Verwenden Sie sie nur, wenn Sie deren Funktion laut Unity-Dokumentation vollständig verstehen.

[Bei Mega-Nutzung] Location Usage Description hinzufügen

Vorsicht

Wenn Sie Location-Berechtigungen in EasyAR aktivieren (für Mega), müssen Sie eine Berechtigungsbeschreibung hinzufügen. Andernfalls schlägt der Build fehl.

Da Project Settings > Player > visionOS aktuell kein Location Usage Description-Feld anzeigt, gehen Sie wie folgt vor:

  1. Plattform wechseln: Wechseln Sie temporär zum iOS-Tab.
  2. Beschreibung eingeben: Fügen Sie unter Location Usage Description eine Erklärung hinzu.
  3. Zu visionOS zurückkehren: Wechseln Sie zurück zum visionOS-Tab. Die Konfiguration bleibt erhalten.

Location Description

Konfiguration im Xcode-Projekt

Führen Sie in dem von Unity exportierten Xcode-Projekt folgende Schritte aus:

Entitlement für Kameradaten konfigurieren

  • Kopieren Sie die beantragte Enterprise.license in das Xcode-Projektverzeichnis.

    Copy to Xcode project folder

  • Ziehen Sie Enterprise.license aus dem Projektverzeichnis in das Xcode-Projekt.

    Move into Xcode project

Info.plist anpassen für Dateispeicherung und -übertragung

Wenn Ihre App EIFs aufnehmen und über die visionOS-Dateien-App an Computer senden soll, fügen Sie folgende Einträge in Info.plist hinzu:

  • Fügen Sie LSSupportsOpeningDocumentsInPlace hinzu und setzen Sie den Wert auf true.

  • Fügen Sie UIFileSharingEnabled hinzu und setzen Sie den Wert auf true.

Info.plist bearbeiten

Tipp

Xcode zeigt Key-Namen nach dem Hinzufügen anders an (z. B. Supports opening documents in place statt LSSupportsOpeningDocumentsInPlace). Das ist normal.