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

    • PortalCam P1

      • Panoramica del prodotto
      • Operazioni di base
      • Uso della LCC Scan App
      • Manutenzione e cura
      • FAQ
  • Serie Lixel K

    • Lixel K1

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Flusso di scansione
      • Ottenere una nuvola di punti con coordinate assolute
      • Fusione delle mappe
      • Consigli di pianificazione dei percorsi per scene tipiche
      • Precauzioni
      • FAQ
    • Lixel K2

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione
      • Flusso di scansione
      • Acquisire una nuvola di punti con coordinate assolute
      • Fusione mappe
      • Consigli di pianificazione dei percorsi per scene tipiche
      • Precauzioni
      • FAQ
  • Serie Lixel L

    • Lixel L2 Pro

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Flusso di scansione
      • Ottenere una nuvola di punti con coordinate assolute
      • Punto di misura
      • Appendice
      • FAQ
    • Lixel L3

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Acquisizione dei dati
      • Acquisizione di coordinate assolute
      • Appendice
  • Accessori

    • Stick Light

      • Guida all'installazione
      • Operazioni di base
      • Domande frequenti
  • Lixel Studio

    • Versione e copyright
    • Installazione e attivazione
    • Interfaccia del software
    • Operazioni sui file
    • Elaborazione del progetto
    • Strumenti
    • Disegno 2D
    • Applicazioni di settore
    • Impostazioni
    • Connessione del dispositivo
    • Domande Frequenti
  • Lixel CyberColor

    • LCC Studio

      • Introduzione
      • Versione e aggiornamenti
      • Download e installazione
      • Panoramica dell'interfaccia e navigazione
      • Operazioni preliminari alla ricostruzione
      • Prima della ricostruzione
      • Ricostruzione del modello
      • Ricostruzione modello singolo
      • Fusione delle mappe
      • Fusione aria-terra
      • Ricostruzione aerea
      • I miei modelli
      • Altre funzioni
      • Impostazioni e account
      • Convertitore
      • Ricostruzione video
      • Domande Frequenti / FAQ
    • LCC Scene Editor

      • Versione e aggiornamenti
      • Account e accesso
      • Panoramica del prodotto e home page
      • Interfaccia dell'editor
      • Modalità di navigazione
      • File
      • Impostazioni
      • Modifica
      • Finestra
      • Barra degli strumenti globale
      • Asset e proprietà
      • Barra degli strumenti sinistra
      • Punti di vista
      • Portale
      • Skybox
      • Annotazioni
      • Misurazione
      • Flythrough
      • Rapporto scena
      • 3D Layout
      • Mini-mappa
      • Modalità Anteprima (Viewer)
      • Aiuto
      • Domande frequenti (FAQ)
      • Punto di spawn
    • LCC Model Editor

      • Versione e aggiornamenti
      • Guida utente
      • Panoramica e interfaccia
      • Operazioni sui file
      • Selettori
      • Modifica dei modelli
      • Misurazione
      • Correzione colore
      • Gestione degli asset
      • Impostazioni e Aiuto
      • Domande frequenti
    • Capture Guide

      • Panoramica
      • Panoramica dei dispositivi di acquisizione
      • Principi generali di acquisizione
      • Acquisizione di scene interne
      • Acquisizione di scene esterne
      • Acquisizione su larga scala (map fusion)
      • Acquisizione per aerial-ground map fusion
      • Acquisizione di oggetti
      • Acquisizione di persone
      • Acquisizione per ricostruzione da video
      • HD Enhancement
      • Control points (Lixel P1)
      • FAQ e risoluzione dei problemi
    • Buone Pratiche

      • Unione di più modelli 3DGS di grandi dimensioni
    • Cronologia versioni
  • Plugin e SDK

    • Unreal

      • Introduzione
      • Avvio rapido - Windows
      • Avvio rapido - Linux
      • Avvio rapido - Quest3
      • Edizioni e licenze
      • Rendering
      • Rasterizzazione Tiled (sperimentale)
      • Impostazioni visive
      • Normali e illuminazione
      • Modifica della scena
      • Parametri di prestazione
      • Guida alle prestazioni
      • Integrazione con plugin di terze parti e del motore
      • Proxy Mesh
      • Animazione di caricamento
      • Collisioni
      • Supporto del Navigation System
      • Supporto di Single Layer Water
      • Localizzazione
      • FAQ
      • Risoluzione dei problemi
      • Log e diagnostica
      • Contattaci
      • Buone pratiche

        • Rilluminare il 3DGS con una mesh di LixelStudio
      • Riferimento API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actor SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enum
        • Struct
      • Registro delle modifiche

        • 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

      • Introduzione all'Unity SDK
      • Caratteristiche tecniche
      • Requisiti dell'ambiente di sviluppo
      • Guida rapida per PC
      • Guida all'ottimizzazione delle impostazioni di progetto
      • Guida allo sviluppo per Pico 4 Ultra
      • Guida allo streaming PC per Pico 4 Ultra
      • Guida allo sviluppo per Quest 3
      • Guida allo streaming PC per Quest 3
      • Guida allo sviluppo OpenXR
      • Guida allo streaming Business per Pico 4 Ultra
      • Glossario
      • FAQ
      • Contattaci
      • Guida allo sviluppo delle funzionalità

        • Guida allo sviluppo del rendering misto multi-scena
        • Guida allo sviluppo della ricezione delle ombre
        • Guida allo sviluppo dell'illuminazione in tempo reale
        • Guida allo sviluppo del rendering multi-camera
        • Guida allo sviluppo del rendering di immagini ad alta risoluzione
        • Guida allo sviluppo della compatibilità dei formati dati LCC e LCC2
        • Guida allo sviluppo dell'effetto di caricamento
        • Guida allo sviluppo del cambio di modalità di rendering Mip
        • Guida allo sviluppo dello snap a bordi e angoli
        • Guida allo sviluppo della decal proiettata
        • Guida allo sviluppo della decal proiettata video
        • Guida allo sviluppo dell'evidenziazione
        • Guida allo sviluppo del ritaglio in tempo reale
        • Guida allo sviluppo della regolazione del tono
        • Guida allo sviluppo dell'ottenimento dei dati Mesh della scena
        • Guida allo sviluppo della modalità Editor
        • Guida alla configurazione dei parametri di prestazioni di rendering
        • Guida allo sviluppo del co-impacchettamento di applicazione e dati
        • Guida allo sviluppo del sistema di collisione
        • Guida ai problemi di autorizzazione nello sviluppo su macOS
        • Guida allo sviluppo di compilazione e packaging per dispositivi iOS
      • Riferimento API

        • LCCManager
        • Renderer
        • Tipi di dati
      • Registro delle modifiche

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

      • Introduzione
      • Guida all'ottimizzazione delle prestazioni di rendering
      • Configurazione grafica
      • Domande frequenti
      • Riferimento API

        • 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
      • Registro delle modifiche

        • 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

Guida allo sviluppo di compilazione e packaging per dispositivi iOS

Contesto

L'LCC Unity SDK viene distribuito sotto forma di DLL precompilate. Poiché la piattaforma iOS richiede che i plugin nativi vengano collegati come librerie statiche (__Internal) anziché caricati dinamicamente (dlopen), devi completare i passaggi di configurazione aggiuntivi descritti in questo documento prima di compilare un'applicazione iOS. Esiste una differenza fondamentale nei meccanismi di caricamento dei plugin nativi tra iOS e le altre piattaforme; le altre piattaforme (Windows, macOS, Android, Linux) non richiedono alcuna operazione aggiuntiva.

Questo SDK usa "libwebp" come destinazione P/Invoke quando viene compilato in una DLL. Lo script integrato Editor/RewriteWebpDllImport.cs dell'SDK lo riscrive automaticamente in "__Internal" durante le compilazioni iOS, garantendo che IL2CPP generi le chiamate dirette ai simboli corrette.

Nota:

Quando compili un'applicazione per dispositivi iOS, rinomina prima Editor/RewriteWebpDllImport.txt nel pacchetto dell'SDK in Editor/RewriteWebpDllImport.cs affinché lo script abbia effetto. In alternativa, cambia direttamente il suffisso dello script nel pacchetto dell'SDK e copialo nella directory Assets/Editor/ del progetto.

Prerequisiti

Lo script RewriteWebpDllImport.cs usa la libreria di riscrittura IL Mono.Cecil durante la compilazione, quindi devi prima aggiungerla come dipendenza al progetto. Ci sono due modi; scegline uno.

Metodo 1: aggiungi tramite Gestione pacchetti (consigliato)

Apri la barra dei menu di Unity Finestra → Gestione pacchetti, fai clic sul pulsante + nell'angolo in alto a sinistra, scegli Aggiungi pacchetto per nome..., inserisci il nome com.unity.nuget.mono-cecil, inserisci la versione 1.11.5, fai clic su Aggiungi e attendi che Gestione pacchetti completi l'installazione, come mostrato di seguito.

Aggiungi la dipendenza Mono.Cecil tramite nome in Gestione pacchetti

Aggiungi com.unity.nuget.mono-cecil tramite nome in Gestione pacchetti

Metodo 2: modifica manualmente manifest.json

Modifica direttamente il file Packages/manifest.json del progetto e aggiungi una riga sotto dependencies:

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

Dopo aver salvato, torna a Unity; l'Editor risolverà e installerà automaticamente la dipendenza.

Flusso di lavoro di compilazione

Dopo aver completato la configurazione dei prerequisiti, segui il flusso di lavoro di compilazione iOS standard; RewriteWebpDllImport interverrà automaticamente durante la compilazione.

  1. Rinomina Editor/RewriteWebpDllImport.txt in Editor/RewriteWebpDllImport.cs (se non è già stato rinominato).
  2. Nella barra dei menu di Unity, seleziona File → Build Settings, seleziona iOS dall'elenco delle piattaforme e fai clic su Switch Platform.
  3. Fai clic su Build (oppure Build And Run), seleziona una directory di output e genera il progetto Xcode.
  4. Durante la compilazione, lo script riscrive automaticamente tutte le voci DllImport dell'SDK destinate a "libwebp" in "__Internal". Dopo una compilazione riuscita, la Console restituisce un log simile a:
[RewriteWebpDllImport] Rewrote 77 P/Invoke entries from "libwebp" to "__Internal".
  1. Apri il progetto generato con Xcode e, in Build Phases → Link Binary With Libraries del target, conferma che libwebp.a, libwebpdemux.a e libsharpyuv.a siano collegati.
  2. Collega il dispositivo iOS, firma ed esegui in Xcode.

Nota:

Se il log [RewriteWebpDllImport] non compare nella Console, di solito significa che lo script non ha avuto effetto: conferma che il suffisso del file sia stato cambiato da .txt a .cs e che la dipendenza Mono.Cecil sia installata correttamente.

Risoluzione dei problemi

Messaggio di erroreCausaSoluzione
Unable to load DLL 'libwebp'Lo script non ha avuto effetto e DllImport punta ancora al nome della libreria dinamicaConferma che RewriteWebpDllImport.txt sia stato rinominato in .cs, ricompila e controlla il log della Console
Cannot find LCCSDK.dll in staging areaLa DLL principale dell'SDK non è stata trovata durante la compilazione e manca la destinazione della riscritturaConferma che l'SDK sia importato correttamente nel progetto e che la DLL non sia esclusa da iOS tramite Exclude Platform
Errori di compilazione relativi a Mono.Cecil (namespace Mono.Cecil non trovato)Non installato o versione non corrispondenteAggiungi com.unity.nuget.mono-cecil@1.11.5 secondo i "Prerequisiti" e attendi che il compilatore risolva di nuovo

Note

  • Si consiglia di usare Unity 2022.3 LTS o superiore (incluso Unity 6); la compatibilità con Mono.Cecil e IL2CPP non può essere garantita su versioni troppo vecchie.
  • Se devi eseguire su iOS Simulator, conferma che la libreria statica collegata contenga la slice dell'architettura arm64-simulator, altrimenti il simulatore non può collegarsi.
  • La configurazione precedente riguarda solo la piattaforma iOS. I flussi di lavoro di compilazione di Windows, macOS, Android e Linux non ne sono minimamente influenzati e non è necessario rinominare lo script o aggiungere la dipendenza Mono.Cecil.