AR Clip SDK
Información general
AR Clip permite ofrecer experiencias AR mediante App Clips: el contenido WebGL se ejecuta en streaming mientras ARKit y el motor VPS de WebAR³ proporcionan localización. Sigue el flujo al estilo Immersal: requisitos, instalación, preparación de la escena, activación del VPS y carga del build WebGL.
Requisitos
- Unity 2020 LTS o superior (probado en 2021+)
- Objetivo de compilación WebGL
- Acceso al cargador de archivos zip de AR Clip (https://cdn.mobile.web-ar.studio/clip/pages/zip_uploader.html)
Nota: En el Editor de Unity la mayoría de las API de AR Clip están deshabilitadas mediante
Application.isEditor. Genera un build WebGL y pruébalo desde la app móvil de AR Clip para ver el comportamiento real.
Instalar el paquete
- Abre Window → Package Manager.
- Pulsa + → Add package from Git URL….
- Introduce
https://github.com/WebAR-Studio/arclip_sdk.gity confirma.
Antes de importar, elimina cualquier carpeta Assets/ARLib existente para evitar conflictos:
error CS0433: The type 'ARLibTester' exists in both 'ARLib' and 'Assembly-CSharp'
Importar ejemplos
En Package Manager → AR Clip → Samples:
- Importa WebGLTemplates y copia la carpeta resultante en
Assets/para poder seleccionarla en Project Settings → Player → WebGL Template. - Importa TransparentBackground y mueve
TransparentBackground.jslibaAssets/Pluginspara habilitar el render transparente en WebGL.
Preparar la escena
- Crea un GameObject vacío
ARClipController. - Añade
ARLibControllery asigna la cámara al camporenderCamera. - Desactiva el componente Camera, establece Clear Flags = Solid Color y usa el color RGBA(0,0,0,0).
- Opcionalmente, añade
ARLibTester(de los samples) para simular eventos en el editor.
Script mínimo
using UnityEngine;
using ARLib;
public class ARClipBootstrap : MonoBehaviour
{
[SerializeField] private Camera renderCamera;
private void OnEnable()
{
ARLibController.Initialized += HandleInitialized;
ARLibController.VPSPositionUpdated += HandleVpsPose;
}
private void OnDisable()
{
ARLibController.Initialized -= HandleInitialized;
ARLibController.VPSPositionUpdated -= HandleVpsPose;
}
private void Start()
{
ARLibController.SetRenderCamera(renderCamera);
ARLibController.Initialize();
}
private void HandleInitialized()
{
ARLibController.EnableCamera();
ARLibController.EnableAR();
ARLibController.EnableSurfaceTracking("horizontal");
}
private void HandleVpsPose(VPSPoseData pose)
{
Debug.Log($"VPS pose: {pose.Position}");
}
}
Iniciar la localización VPS
Configura el VPS tras la inicialización y antes de iniciar la localización:
var settings = new VPSSettings
{
apiKey = "your-api-key",
locationIds = new[] { "your-location-id" }
};
ARLibController.SetupVPS(settings);
ARLibController.StartVPS();
Escucha los eventos clave:
ARLibController.VPSInitializedindica que el subsistema está listo.ARLibController.VPSPositionUpdateddevuelve las poses localizadas.ARLibController.OnVPSErrorHappenedinforma de errores.
Ajusta la cadencia de peticiones con métodos como SetSendPhotoDelay, SetGpsAccuracyBarrier y SetFirstRequestDelay.
Módulos de tracking
- Registra imágenes con
AddTrackingImageantes de habilitar el tracking. Espera aTrackedImagesArrayUpdatepara confirmar la carga. - Llama a
EnableSurfaceTracking("horizontal" | "vertical" | "both")para detectar planos. Los resultados llegan porSurfaceTrackingUpdated.
Flujo de compilación y carga
- Selecciona la plantilla WebGL: en Project Settings → Player → WebGL → Resolution and Presentation, elige la plantilla copiada.
- Genera la compilación: File → Build Settings → WebGL → Build.
- Comprime: crea un zip con el contenido del build asegurando que
index.htmlquede en la raíz. - Carga: sube el archivo en https://cdn.mobile.web-ar.studio/clip/pages/zip_uploader.html.
- Prueba: escanea el QR generado con la app AR Clip para iOS (https://apps.apple.com/app/ar-clip/id6742754238).
Solución de problemas
- Sin feed de cámara: confirma que
TransparentBackground.jslibestá enAssets/Pluginsy que la cámara esté asignada y desactivada. - Sin eventos AR en el editor: es el comportamiento esperado; usa
ARLibTestero prueba un build WebGL. - Errores por tipos duplicados: elimina la carpeta
ARLibheredada antes de importar el paquete.