Unity SDK
Añade AR Clip VPS a un proyecto de Unity. El SDK encuentra la posición del usuario en tus mapas VPS y coloca el contenido en el lugar correcto, en dispositivos con ARKit (iOS) y ARCore (Android).
Antes de empezar
- Unity 2022.3 LTS o posterior
- Un dispositivo de prueba compatible con ARKit o ARCore
- Git LFS, si clonas el proyecto de ejemplo (tiene recursos grandes)
Instalación
Elige una de estas dos formas.
Clonar el proyecto de ejemplo
git clone https://github.com/WebAR-Studio/was-vps-unity.git
Abre el proyecto en Unity 2022.3 o posterior. Las escenas de Assets/Scenes muestran
configuraciones que funcionan.
Añadirlo con el Package Manager
- Abre Window → Package Manager.
- Haz clic en + → Add package from Git URL….
- Pega
https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assets.
Unity descarga el SDK en Packages/was-vps-unity.
Preparar la escena
- Crea o abre una escena preparada para AR Foundation. Necesita un AR Session y un AR Session Origin.
- Añade
VPSLocalisationServicea un GameObject vacío. Este componente se encarga de la localización. - En el Inspector, asigna:
AR SessionAR Session Origin- la cámara AR y los enlaces de UI, si los necesitas (mira las escenas de ejemplo)
- Escribe tu API Key de VPS y al menos un Location ID.
- Opcional: mientras depuras, activa Save Images Locally o Save Logs In File.
¿Necesitas una clave de API?
Consíguela en arclip.design o escribe a support@arclip.design.
Iniciar la localización
Controla la localización desde tu propio script. Añade este componente y asigna la referencia a
VPSLocalisationService en 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());
}
}
Ajustes del Inspector
| Propiedad | Qué hace | Valor por defecto |
|---|---|---|
| Start On Awake | Inicia la localización al cargar la escena | false |
| Force Mock In Editor | Usa siempre el proveedor simulado cuando ejecutas en el Editor | true |
| Send GPS | Añade los datos GPS del dispositivo a cada petición VPS | false |
| Fails Count To Reset | Cuántos fallos seguidos reinician la sesión | 5 |
| Save Images Locally | Guarda los fotogramas capturados para depurar | false |
Probar y depurar
- Activa
Force Mock In Editory usa las texturas simuladas incluidas para probar sin dispositivo. - Llama a
VPSLogger.SetLogLevel(LogLevel.VERBOSE)para ver en la consola las peticiones HTTP, las respuestas y los errores. - Si la localización no funciona nunca, comprueba que tu clave de API es válida y que cada ID de ubicación corresponde a un mapa VPS que tienes.
Ejemplos
- En el proyecto de ejemplo, mira
Assets/Scenes/TestScene.unityyAssets/Scripts/ExampleVPS.cs: son ejemplos que funcionan. - Usa las poses de VPS en tu propia lógica: crea anclas, alinea contenido 3D o actualiza la UI.
Siguiente: Plataformas de Unity — compila para teléfonos, visores y gafas.