XGRIDSDokumentation
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Lixel PortalCam-Serie

    • PortalCam P1

      • Produktübersicht
      • Grundlegende Bedienung
      • LCC Scan App verwenden
      • Wartung und Pflege
      • FAQ
  • Lixel K-Serie

    • Lixel K1

      • Produktübersicht
      • Grundlegende Bedienung
      • Geräteaktivierung und -verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Kartenfusion
      • Empfehlungen zur Routenplanung für typische Szenen
      • Hinweise
      • FAQ
    • Lixel K2

      • Produktübersicht
      • Grundlegende Bedienung
      • Aktivierung und Verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Kartenfusion
      • Empfehlungen zur Routenplanung für typische Szenen
      • Hinweise
      • FAQ
  • Lixel L-Serie

    • Lixel L2 Pro

      • Produktübersicht
      • Grundlegende Bedienung
      • Geräteaktivierung und -verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Messpunkt
      • Anhang
      • FAQ
    • Lixel L3

      • Produktübersicht
      • Grundlegende Bedienung
      • Aktivierung und Verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Anhang
  • Zubehör

    • Stick Light

      • Installationsanleitung
      • Grundlegende Bedienung
      • Häufige Fragen
  • Lixel Studio

    • Version und Copyright
    • Installation und Aktivierung
    • Softwareoberfläche
    • Dateioperationen
    • Projektverarbeitung
    • Werkzeuge
    • 2D-Zeichnung
    • Anwendungen
    • Einstellungen
    • Geräteverbindung
    • Häufige Fragen
  • Lixel CyberColor

    • LCC Studio

      • Erste Schritte
      • Version und Updates
      • Download und Installation
      • Oberfläche und Navigation
      • Vor der Rekonstruktion
      • Modellrekonstruktion
      • Einzelmodell-Rekonstruktion
      • Kartenfusion
      • Boden-Luft-Fusion
      • Luftbild-Rekonstruktion
      • Meine Modelle
      • Weitere Funktionen
      • Einstellungen und Konto
      • Converter
      • Videorekonstruktion
      • Häufige Fragen / FAQ
    • LCC Scene Editor

      • Version und Updates
      • Konto und Anmeldung
      • Produktübersicht und Startseite
      • Editor-Oberfläche
      • Navigationsmodi
      • Datei
      • Einstellungen
      • Bearbeiten
      • Fenster
      • Globale Symbolleiste
      • Assets und Eigenschaften
      • Linke Symbolleiste
      • Ansichtspunkte
      • Portal
      • Skybox
      • Markierungen
      • Messung
      • Flythrough
      • Szenenbericht
      • 3D-Layout
      • Minikarte
      • Vorschaumodus (Viewer)
      • Hilfe
      • Häufige Fragen (FAQ)
      • Spawn-Point
    • LCC Model Editor

      • Version und Updates
      • Benutzerhandbuch
      • Übersicht und Oberfläche
      • Dateioperationen
      • Selektoren
      • Modelle bearbeiten
      • Messung
      • Farbkorrektur
      • Asset-Verwaltung
      • Einstellungen und Hilfe
      • Häufige Fragen
    • Capture Guide

      • Überblick
      • Überblick über die Aufnahmegeräte
      • Allgemeine Aufnahmeprinzipien
      • Aufnahme von Innenszenen
      • Aufnahme von Außenszenen
      • Großflächige Aufnahme (Map Fusion)
      • Aerial-Ground Map Fusion – Aufnahme
      • Objektaufnahme
      • Personenaufnahme
      • Video-Rekonstruktionsaufnahme
      • HD Enhancement
      • Kontrollpunkte (Lixel P1)
      • FAQ und Fehlerbehebung
    • Best Practices

      • Zusammenführen mehrerer großer 3DGS-Modelle
    • Versionsgeschichte
  • Plugin & SDK

    • Unreal

      • Einführung
      • Schnellstart - Windows
      • Schnellstart - Linux
      • Schnellstart - Quest3
      • Editionen und Lizenzierung
      • Rendering
      • Tiled-Rasterisierung (experimentell)
      • Bildeinstellungen
      • Normalen und Beleuchtung
      • Szenenbearbeitung
      • Leistungsparameter
      • Leitfaden zur Leistung
      • Integration von Drittanbieter- und Engine-Plugins
      • Proxy Mesh
      • Ladeanimation
      • Kollision
      • Unterstützung des Navigation System
      • Unterstützung von Single Layer Water
      • Lokalisierung
      • FAQ
      • Fehlerbehebung
      • Logs und Diagnose
      • Kontakt
      • Bewährte Vorgehensweisen

        • 3DGS mit einem LixelStudio-Mesh neu beleuchten
      • API-Referenz

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG- / SPZ- / PLY-Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Änderungsprotokoll

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • Unity

      • Einführung in das Unity SDK
      • Technische Funktionen
      • Anforderungen an die Entwicklungsumgebung
      • PC-Schnellstartanleitung
      • Leitfaden zur Optimierung der Projekteinstellungen
      • Pico 4 Ultra-Entwicklungsanleitung
      • Pico 4 Ultra-PC-Streaming-Anleitung
      • Quest 3-Entwicklungsanleitung
      • Quest 3-PC-Streaming-Anleitung
      • OpenXR-Entwicklungsanleitung
      • Pico 4 Ultra-Business-Streaming-Anleitung
      • Glossar
      • FAQ
      • Kontakt
      • Funktionsentwicklungsleitfaden

        • Entwicklungsanleitung für gemischtes Multi-Szenen-Rendering
        • Entwicklungsanleitung für Schattenempfang
        • Entwicklungsanleitung für Echtzeitbeleuchtung
        • Entwicklungsanleitung für Multi-Kamera-Rendering
        • Entwicklungsanleitung für hochauflösendes Bild-Rendering
        • Entwicklungsanleitung zur Kompatibilität der Datenformate LCC und LCC2
        • Entwicklungsanleitung für Ladeeffekte
        • Entwicklungsanleitung für das Umschalten des Mip-Rendering-Modus
        • Entwicklungsanleitung für Kanten- und Eckensnapping
        • Entwicklungsanleitung für projizierte Decals
        • Entwicklungsanleitung für projizierte Video-Decals
        • Entwicklungsanleitung für Hervorhebung
        • Entwicklungsanleitung für Echtzeit-Clipping
        • Entwicklungsanleitung für Farbanpassung
        • Entwicklungsanleitung für das Abrufen von Szenen-Mesh-Daten
        • Entwicklungsanleitung für den Editor-Modus
        • Konfigurationsanleitung für Render-Leistungsparameter
        • Entwicklungsanleitung zum gemeinsamen Paketieren von Anwendung und Daten
        • Entwicklungsanleitung für das Kollisionssystem
        • Anleitung zu macOS-Berechtigungsproblemen in der Entwicklung
        • Entwicklungsanleitung für Kompilierung und Paketierung auf iOS-Geräten
      • API-Referenz

        • LCCManager
        • Renderer
        • Datentypen
      • Changelog

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • Einführung
      • Leitfaden zur Rendering-Leistungsoptimierung
      • Grafikkonfiguration
      • Häufige Fragen
      • API-Referenz

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • Änderungsprotokoll

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0

Entwicklungsanleitung für Kompilierung und Paketierung auf iOS-Geräten

Hintergrund

Das LCC Unity SDK wird in Form vorkompilierter DLLs veröffentlicht. Da die iOS-Plattform erfordert, dass native Plugins als statische Bibliotheken (__Internal) statt dynamisch (dlopen) geladen werden, müssen Sie die in diesem Dokument beschriebenen zusätzlichen Konfigurationsschritte abschließen, bevor Sie eine iOS-Anwendung erstellen. Beim Laden nativer Plugins gibt es einen grundlegenden Unterschied zwischen iOS und anderen Plattformen; andere Plattformen (Windows, macOS, Android, Linux) erfordern keine zusätzlichen Operationen.

Dieses SDK verwendet "libwebp" als P/Invoke-Ziel, wenn es in eine DLL kompiliert wird. Das eingebaute Skript Editor/RewriteWebpDllImport.cs des SDK schreibt es während iOS-Builds automatisch in "__Internal" um, wodurch sichergestellt wird, dass IL2CPP die korrekten direkten Symbolaufrufe erzeugt.

Hinweis:

Wenn Sie eine iOS-Geräteanwendung kompilieren, benennen Sie zuerst Editor/RewriteWebpDllImport.txt im SDK-Paket in Editor/RewriteWebpDllImport.cs um, damit das Skript wirksam wird. Alternativ können Sie direkt die Dateierweiterung des Skripts im SDK-Paket ändern und es in das Verzeichnis Assets/Editor/ des Projekts kopieren.

Voraussetzungen

Das Skript RewriteWebpDllImport.cs verwendet während des Builds die IL-Rewriting-Bibliothek Mono.Cecil, daher müssen Sie sie zuerst als Abhängigkeit zum Projekt hinzufügen. Es gibt zwei Möglichkeiten; wählen Sie eine davon.

Methode 1: Über den Package Manager hinzufügen (empfohlen)

Öffnen Sie die Unity-Menüleiste Window → Package Manager, klicken Sie auf die Schaltfläche + in der oberen linken Ecke, wählen Sie Add package by name..., geben Sie den Namen com.unity.nuget.mono-cecil ein, geben Sie die Version 1.11.5 ein, klicken Sie auf Add und warten Sie, bis der Package Manager die Installation abgeschlossen hat, wie unten dargestellt.

Die Mono.Cecil-Abhängigkeit im Package Manager nach Namen hinzufügen

com.unity.nuget.mono-cecil im Package Manager nach Namen hinzufügen

Methode 2: manifest.json manuell bearbeiten

Bearbeiten Sie direkt die Datei Packages/manifest.json des Projekts und fügen Sie unter dependencies eine Zeile hinzu:

{
  "dependencies": {
    "com.unity.nuget.mono-cecil": "1.11.5"
  }
}

Wechseln Sie nach dem Speichern zurück zu Unity; der Editor löst die Abhängigkeit automatisch auf und installiert sie.

Build-Ablauf

Führen Sie nach Abschluss der Voraussetzungskonfiguration den standardmäßigen iOS-Build-Ablauf aus; RewriteWebpDllImport greift während des Builds automatisch ein.

  1. Benennen Sie Editor/RewriteWebpDllImport.txt in Editor/RewriteWebpDllImport.cs um (falls nicht bereits umbenannt).
  2. Wählen Sie in der Unity-Menüleiste File → Build Settings, wählen Sie in der Plattformliste iOS und klicken Sie auf Switch Platform.
  3. Klicken Sie auf Build (oder Build And Run), wählen Sie ein Ausgabeverzeichnis und erzeugen Sie das Xcode-Projekt.
  4. Während des Builds schreibt das Skript automatisch alle DllImport-Einträge im SDK, die auf "libwebp" zielen, in "__Internal" um. Nach einem erfolgreichen Build gibt die Konsole ein Protokoll aus, das etwa so aussieht:
[RewriteWebpDllImport] 77 P/Invoke-Einträge von "libwebp" in "__Internal" umgeschrieben.
  1. Öffnen Sie das erzeugte Projekt mit Xcode und bestätigen Sie unter Build Phases → Link Binary With Libraries des Targets, dass libwebp.a, libwebpdemux.a und libsharpyuv.a verknüpft sind.
  2. Schließen Sie das iOS-Gerät an, signieren Sie und führen Sie es in Xcode aus.

Hinweis:

Wenn das Protokoll [RewriteWebpDllImport] nicht in der Konsole erscheint, bedeutet dies in der Regel, dass das Skript nicht wirksam wurde — bestätigen Sie, dass die Dateierweiterung von .txt in .cs geändert wurde und dass die Mono.Cecil-Abhängigkeit korrekt installiert ist.

Fehlerbehebung

FehlermeldungUrsacheLösung
Unable to load DLL 'libwebp'Das Skript wurde nicht wirksam, und DllImport zeigt weiterhin auf den Namen der dynamischen BibliothekBestätigen, dass RewriteWebpDllImport.txt in .cs umbenannt wurde, neu bauen und das Konsolenprotokoll prüfen
Cannot find LCCSDK.dll in staging areaDie Haupt-DLL des SDK wurde während des Builds nicht gefunden, und das Rewrite-Ziel fehltBestätigen, dass das SDK korrekt in das Projekt importiert wurde und die DLL nicht durch Exclude Platform von iOS ausgeschlossen ist
Mono.Cecil-bezogene Kompilierungsfehler (der Namespace Mono.Cecil kann nicht gefunden werden)Nicht installiert oder VersionskonfliktGemäß „Voraussetzungen“ com.unity.nuget.mono-cecil@1.11.5 hinzufügen und warten, bis der Compiler die Abhängigkeit erneut auflöst

Hinweise

  • Es wird empfohlen, Unity 2022.3 LTS oder höher (einschließlich Unity 6) zu verwenden; die Kompatibilität mit Mono.Cecil und IL2CPP kann bei zu alten Versionen nicht garantiert werden.
  • Wenn Sie auf dem iOS-Simulator ausführen müssen, bestätigen Sie, dass die verknüpfte statische Bibliothek den Architektur-Slice arm64-simulator enthält, andernfalls kann der Simulator nicht verknüpfen.
  • Die obige Konfiguration betrifft nur die iOS-Plattform. Die Build-Abläufe von Windows, macOS, Android und Linux sind überhaupt nicht betroffen, und es ist nicht erforderlich, das Skript umzubenennen oder die Mono.Cecil-Abhängigkeit hinzuzufügen.