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

    • PortalCam P1

      • Descripción del producto
      • Operaciones básicas
      • Uso de la LCC Scan App
      • Mantenimiento y cuidado
      • FAQ
  • Serie Lixel K

    • Lixel K1

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Fusión de mapas
      • Recomendaciones de planificación de rutas para escenas típicas
      • Precauciones
      • FAQ
    • Lixel K2

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Fusión de mapas
      • Recomendaciones de planificación de rutas para escenas típicas
      • Precauciones
      • FAQ
  • Serie Lixel L

    • Lixel L2 Pro

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Punto de medición
      • Apéndice
      • FAQ
    • Lixel L3

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Apéndice
  • Accesorios

    • Stick Light

      • Guía de instalación
      • Operaciones básicas
      • Preguntas frecuentes
  • Lixel Studio

    • Versión y derechos de autor
    • Instalación y activación
    • Interfaz del software
    • Operaciones de archivo
    • Procesamiento de proyectos
    • Herramientas
    • Dibujo 2D
    • Aplicaciones
    • Ajustes
    • Conexión de dispositivo
    • Preguntas Frecuentes
  • Lixel CyberColor

    • LCC Studio

      • Primeros pasos
      • Versión y actualizaciones
      • Descarga e instalación
      • Descripción general de la interfaz y navegación
      • Antes de la reconstrucción
      • Reconstrucción de modelos
      • Reconstrucción de modelo único
      • Fusión de mapas
      • Fusión aire-tierra
      • Reconstrucción aérea
      • Mis modelos
      • Otras funciones
      • Ajustes y cuenta
      • Converter
      • Reconstrucción por vídeo
      • Preguntas frecuentes
    • LCC Scene Editor

      • Versión y actualizaciones
      • Cuenta e inicio de sesión
      • Descripción general del producto y página de inicio
      • Interfaz del editor
      • Modos de navegación
      • Archivo
      • Configuración
      • Editar
      • Ventana
      • Barra de herramientas global
      • Activos y propiedades
      • Barra de herramientas izquierda
      • Puntos de vista
      • Portal
      • Skybox
      • Anotaciones
      • Medición
      • Flythrough
      • Informe de escena
      • 3D Layout
      • Minimapa
      • Modo Vista previa (Viewer)
      • Ayuda
      • Preguntas frecuentes (FAQ)
      • Punto de inicio
    • LCC Model Editor

      • Versión y actualizaciones
      • Guía del usuario
      • Visión general e interfaz
      • Operaciones de archivo
      • Selectores
      • Edición de modelos
      • Medición
      • Corrección de color
      • Gestión de activos
      • Configuración y ayuda
      • Preguntas frecuentes
    • Capture Guide

      • Descripción general
      • Descripción general de los dispositivos de captura
      • Principios generales de captura
      • Captura de escenas interiores
      • Captura de escenas exteriores
      • Captura a gran escala (Map Fusion)
      • Captura con aerial-ground map fusion
      • Captura de objetos
      • Captura de personas
      • Captura para reconstrucción a partir de vídeo
      • HD Enhancement
      • Puntos de control (Lixel P1)
      • Preguntas frecuentes y resolución de problemas
    • Buenas Prácticas

      • Fusión de varios modelos 3DGS de gran tamaño
    • Historial de versiones
  • Plugins y SDK

    • Unreal

      • Introducción
      • Inicio rápido - Windows
      • Inicio rápido - Linux
      • Inicio rápido - Quest3
      • Ediciones y licencias
      • Renderizado
      • Rasterización Tiled (experimental)
      • Ajustes visuales
      • Normales e iluminación
      • Edición de escenas
      • Parámetros de rendimiento
      • Guía de rendimiento
      • Integración con plugins de terceros y del motor
      • Proxy Mesh
      • Animación de carga
      • Colisión
      • Compatibilidad con Navigation System
      • Compatibilidad con Single Layer Water
      • Localización
      • Preguntas frecuentes
      • Resolución de problemas
      • Logs y diagnóstico
      • Contacto
      • Buenas prácticas

        • Reiluminar 3DGS con una malla de LixelStudio
      • Referencia de API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enumeraciones
        • Structs
      • Registro de cambios

        • 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

      • Introducción al SDK de Unity
      • Funciones técnicas
      • Requisitos del entorno de desarrollo
      • Guía de inicio rápido para PC
      • Guía de optimización de ajustes del proyecto
      • Guía de desarrollo para Pico 4 Ultra
      • Guía de streaming desde PC para Pico 4 Ultra
      • Guía de desarrollo para Quest 3
      • Guía de streaming desde PC para Quest 3
      • Guía de desarrollo con OpenXR
      • Guía de Business Streaming para Pico 4 Ultra
      • Glosario
      • Preguntas frecuentes
      • Contáctanos
      • Guía de desarrollo de funciones

        • Guía de desarrollo de renderizado mixto de varias escenas
        • Guía de desarrollo de recepción de sombras
        • Guía de desarrollo de iluminación en tiempo real
        • Guía de desarrollo de renderizado multicámara
        • Guía de desarrollo de renderizado de imágenes de alta resolución
        • Guía de desarrollo de compatibilidad de formatos de datos LCC y LCC2
        • Guía de desarrollo del efecto de carga
        • Guía de desarrollo de cambio de modo de renderizado Mip
        • Guía de desarrollo de ajuste a bordes y esquinas
        • Guía de desarrollo de decal proyectado
        • Guía de desarrollo de decal proyectado de vídeo
        • Guía de desarrollo de resaltado
        • Guía de desarrollo de recorte en tiempo real
        • Guía de desarrollo de ajuste de color
        • Guía de desarrollo para obtener los datos de malla de la escena
        • Guía de desarrollo del modo Editor
        • Guía de configuración de parámetros de rendimiento de renderizado
        • Guía de desarrollo de co-empaquetado de aplicación y datos
        • Guía de desarrollo del sistema de colisiones
        • Guía de problemas de permisos de desarrollo en macOS
        • Guía de desarrollo de compilación y empaquetado para dispositivos iOS
      • Referencia de API

        • LCCManager
        • Renderer
        • Tipos de datos
      • Registro de cambios

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

      • Introducción
      • Guía de optimización del rendimiento de renderizado
      • Configuración de gráficos
      • Preguntas frecuentes
      • Referencia de 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 de cambios

        • 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

Guía de desarrollo de compilación y empaquetado para dispositivos iOS

Trasfondo

El LCC Unity SDK se publica en forma de DLL precompiladas. Debido a que la plataforma iOS requiere que los plugins nativos se enlacen como bibliotecas estáticas (__Internal) en lugar de cargarse dinámicamente (dlopen), debes completar los pasos de configuración adicionales descritos en este documento antes de compilar una aplicación iOS. Hay una diferencia fundamental en los mecanismos de carga de plugins nativos entre iOS y otras plataformas; otras plataformas (Windows, macOS, Android, Linux) no requieren operaciones adicionales.

Este SDK usa "libwebp" como objetivo P/Invoke cuando se compila en una DLL. El script integrado del SDK Editor/RewriteWebpDllImport.cs lo reescribe automáticamente como "__Internal" durante las compilaciones de iOS, asegurando que IL2CPP genera las llamadas directas de símbolo correctas.

Nota:

Al compilar una aplicación para dispositivos iOS, primero renombra Editor/RewriteWebpDllImport.txt del paquete del SDK a Editor/RewriteWebpDllImport.cs para que el script surta efecto. Alternativamente, cambia directamente el sufijo del script en el paquete del SDK y cópialo al directorio Assets/Editor/ del proyecto.

Requisitos previos

El script RewriteWebpDllImport.cs usa la biblioteca de reescritura IL Mono.Cecil durante la compilación, por lo que debes añadirla como dependencia al proyecto primero. Hay dos formas; elige una.

Método 1: Añadir mediante el Package Manager (recomendado)

Abre la barra de menús de Unity Ventana → Administrador de paquetes, haz clic en el botón + de la esquina superior izquierda, elige Añadir paquete por nombre..., introduce el nombre com.unity.nuget.mono-cecil, introduce la versión 1.11.5, haz clic en Añadir y espera a que el Package Manager termine de instalar, como se muestra a continuación.

Añadir la dependencia Mono.Cecil por nombre en el Administrador de paquetes

Añadir com.unity.nuget.mono-cecil por nombre en el Administrador de paquetes

Método 2: Editar manualmente manifest.json

Edita directamente el Packages/manifest.json del proyecto y añade una línea bajo dependencies:

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

Después de guardar, vuelve a Unity; el Editor resolverá e instalará automáticamente la dependencia.

Flujo de trabajo de compilación

Después de completar la configuración previa, sigue el flujo de trabajo de compilación iOS estándar; RewriteWebpDllImport intervendrá automáticamente durante la compilación.

  1. Renombra Editor/RewriteWebpDllImport.txt a Editor/RewriteWebpDllImport.cs (si aún no se ha renombrado).
  2. En la barra de menús de Unity, selecciona Archivo → Build Settings, selecciona iOS de la lista de plataformas y haz clic en Switch Platform.
  3. Haz clic en Build (o Build And Run), selecciona un directorio de salida y genera el proyecto Xcode.
  4. Durante la compilación, el script reescribe automáticamente todas las entradas DllImport del SDK que apuntan a "libwebp" como "__Internal". Después de una compilación exitosa, la Console muestra un log similar a:
[RewriteWebpDllImport] Reescribió 77 entradas P/Invoke de "libwebp" a "__Internal".
  1. Abre el proyecto generado con Xcode y, en Build Phases → Link Binary With Libraries del objetivo, confirma que libwebp.a, libwebpdemux.a y libsharpyuv.a están enlazadas.
  2. Conecta el dispositivo iOS, firma y ejecuta en Xcode.

Nota:

Si el log [RewriteWebpDllImport] no aparece en la Console, normalmente significa que el script no surtió efecto — confirma que el sufijo del archivo se ha cambiado de .txt a .cs y que la dependencia Mono.Cecil está correctamente instalada.

Solución de problemas

Mensaje de errorCausaSolución
Unable to load DLL 'libwebp'El script no surtió efecto y DllImport sigue apuntando al nombre de la biblioteca dinámicaConfirma que RewriteWebpDllImport.txt se ha renombrado a .cs, recompila y comprueba el log de la Console
Cannot find LCCSDK.dll in staging areaLa DLL principal del SDK no se encontró durante la compilación y falta el objetivo de reescrituraConfirma que el SDK se ha importado correctamente al proyecto y que la DLL no está excluida de iOS mediante Exclude Platform
Errores de compilación relacionados con Mono.Cecil (no se encuentra el namespace Mono.Cecil)No instalado o versión no coincidenteAñade com.unity.nuget.mono-cecil@1.11.5 según "Requisitos previos" y espera a que el compilador vuelva a resolver

Notas

  • Se recomienda usar Unity 2022.3 LTS o superior (incluido Unity 6); no se puede garantizar la compatibilidad con Mono.Cecil e IL2CPP en versiones excesivamente antiguas.
  • Si necesitas ejecutar en el Simulador de iOS, confirma que la biblioteca estática enlazada contiene la porción de arquitectura arm64-simulator, de lo contrario el simulador no puede enlazar.
  • La configuración anterior solo afecta a la plataforma iOS. Los flujos de trabajo de compilación de Windows, macOS, Android y Linux no se ven afectados en absoluto, y no es necesario renombrar el script ni añadir la dependencia Mono.Cecil.