SDK для Unity
Обзор
SDK WebAR³ VPS для Unity локализует пользователей внутри подготовленных карт VPS и позволяет размещать контент с сантиметровой точностью на устройствах ARKit и ARCore. Ниже — привычная для Immersal структура: проверьте требования, установите пакет, настройте сцену и запустите локализацию.
Требования
- Unity 2022.3 LTS или новее
- Тестовое устройство с поддержкой ARKit либо ARCore
- Git LFS, если вы клонируете пример проекта с крупными ассетами
Варианты установки
Клонировать пример проекта
git clone https://github.com/WebAR-Studio/was-vps-unity.git
Откройте проект в Unity 2022.3+. В папке Assets/Scenes находятся готовые сцены.
Добавить через Package Manager
- Откройте Window → Package Manager.
- Нажмите + → Add package from Git URL….
- Вставьте
https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assets.
Unity загрузит SDK в Packages/was-vps-unity.
Настройка проекта
- Создайте или откройте сцену на базе AR Foundation (с объектами AR Session и AR Session Origin).
- Добавьте
VPSLocalisationServiceна пустой GameObject — он будет выполнять цикл локализации. - Укажите ссылки в инспекторе:
AR SessionAR Session Origin- при необходимости AR-камеру и UI, как в примерах.
- Заполните поле API Key и добавьте минимум один Location ID.
Нужен API ключ? Получите его на space.web-ar.studio или напишите на support@webar3.com / support@web-ar.studio.
- (Опционально) включите Save Images Locally или Save Logs In File при отладке.
Запуск локализации
SDK предоставляет простой API для управления локализацией из скриптов. Добавьте компонент ниже и передайте ссылку на VPSLocalisationService в инспекторе.
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());
}
}
Поля в инспекторе
| Параметр | Назначение | Значение по умолчанию |
|---|---|---|
| Start On Awake | Автоматически запускать локализацию при загрузке сцены | false |
| Force Mock In Editor | Использовать мок-провайдер в редакторе Unity | true |
| Send GPS | Отправлять данные GPS в каждом запросе | false |
| Fails Count To Reset | Количество подряд неудачных попыток до сброса сессии | 5 |
| Save Images Locally | Сохранять отправленные кадры локально для отладки | false |
Отладка и тестирование
- Включите
Force Mock In Editorи используйте тестовые текстуры, чтобы отлаживать без устройства. - Вызовите
VPSLogger.SetLogLevel(LogLevel.VERBOSE), чтобы просматривать HTTP-запросы, ответы и ошибки. - Если локализация не запускается, убедитесь, что API-ключ действителен и Location ID соответствует опубликованной карте.
Что дальше
- Изучите
Assets/Scenes/TestScene.unityиAssets/Scripts/ExampleVPS.csв примерном проекте. - Используйте позы VPS для создания якорей, размещения контента и синхронизации UI.