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
- Ve a Window → Package Manager.
- Pulsa + → Add package from Git URL….
- 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
- Crea o abre una escena preparada para AR Foundation (con AR Session y AR Session Origin).
- Añade
VPSLocalisationServicea un GameObject vacío; la componente gestiona el ciclo de localización. - Asigna en el inspector:
AR SessionAR Session Origin- Cámara AR y elementos de UI opcionales (consulta las escenas de ejemplo).
- 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.
- (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
| Propiedad | Descripción | Valor por defecto |
|---|---|---|
| Start On Awake | Inicia la localización al cargar la escena | false |
| Force Mock In Editor | Fuerza el proveedor simulado en el Editor de Unity | true |
| Send GPS | Envía datos GPS en cada petición | false |
| Fails Count To Reset | Número de fallos consecutivos antes de reiniciar la sesión | 5 |
| Save Images Locally | Guarda fotogramas enviados para depurar | false |
Depuración y pruebas
- Activa
Force Mock In Editory 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.unityyAssets/Scripts/ExampleVPS.csen el proyecto de ejemplo. - Usa las poses del VPS para crear anclajes, colocar contenido y sincronizar tu interfaz.