Saltar al contenido principal

SDK de Unity

Información general

El SDK de Unity de WebAR³ VPS permite localizar a las personas dentro de mapas VPS y colocar contenido con precisión centimétrica en dispositivos ARKit y ARCore. Esta guía sigue el estilo de Immersal: revisa los requisitos, instala el paquete, prepara la escena y activa la localización.

Requisitos

  • Unity 2022.3 LTS o superior
  • Dispositivo de prueba compatible con ARKit o ARCore
  • Git LFS si clonas el proyecto de ejemplo (contiene assets grandes)

Opciones de instalación

Clonar el proyecto de ejemplo

git clone https://github.com/WebAR-Studio/was-vps-unity.git

Abre el proyecto en Unity 2022.3+. Las escenas de referencia están en Assets/Scenes.

Añadir mediante el Package Manager

  1. Ve a Window → Package Manager.
  2. Pulsa + → Add package from Git URL….
  3. Introduce https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assets.

Unity descargará el SDK en Packages/was-vps-unity.

Configuración del proyecto

  1. Crea o abre una escena preparada para AR Foundation (con AR Session y AR Session Origin).
  2. Añade VPSLocalisationService a un GameObject vacío; la componente gestiona el ciclo de localización.
  3. Asigna en el inspector:
    • AR Session
    • AR Session Origin
    • Cámara AR y elementos de UI opcionales (consulta las escenas de ejemplo).
  4. Introduce tu API Key de VPS y al menos un Location ID.

    ¿Necesitas un API key? Consíguelo en space.web-ar.studio o escribe a support@webar3.com / support@web-ar.studio.

  5. (Opcional) Activa Save Images Locally o Save Logs In File para depurar.

Iniciar la localización

El SDK expone una API sencilla. Adjunta el siguiente script y vincula VPSLocalisationService desde el inspector.

using UnityEngine;
using WASVPS;

public class VPSBootstrap : MonoBehaviour
{
[SerializeField] private VPSLocalisationService vpsService;

private void Start()
{
vpsService.OnPositionUpdated += HandlePositionUpdated;
vpsService.OnErrorHappend += HandleError;

var settings = new SettingsWASVPS(
new[] { "your-location-id" },
failsCountToReset: 5
);

settings.ApiKey = "your-api-key";
settings.LocalizationTimeout = 2.0f;

vpsService.StartVPS(settings);
}

private void HandlePositionUpdated(LocationState state)
{
Debug.Log($"Localized at {state.Localisation.VpsPosition}");
}

private void HandleError(ErrorInfo error)
{
Debug.LogError(error.LogDescription());
}
}

Referencia del inspector

PropiedadDescripciónValor por defecto
Start On AwakeInicia la localización al cargar la escenafalse
Force Mock In EditorFuerza el proveedor simulado en el Editor de Unitytrue
Send GPSEnvía datos GPS en cada peticiónfalse
Fails Count To ResetNúmero de fallos consecutivos antes de reiniciar la sesión5
Save Images LocallyGuarda fotogramas enviados para depurarfalse

Depuración y pruebas

  • Activa Force Mock In Editor y usa las texturas de ejemplo para iterar sin dispositivo.
  • Llama a VPSLogger.SetLogLevel(LogLevel.VERBOSE) para revisar peticiones HTTP, respuestas y errores.
  • Si nunca se localiza, verifica que el API key y los Location ID coincidan con mapas publicados.

Próximos pasos

  • Revisa Assets/Scenes/TestScene.unity y Assets/Scripts/ExampleVPS.cs en el proyecto de ejemplo.
  • Usa las poses del VPS para crear anclajes, colocar contenido y sincronizar tu interfaz.