AR Clip SDK
Обзор
AR Clip позволяет запускать AR-опыты через App Clip, стримая WebGL-контент и используя ARKit вместе с движком WebAR³ VPS для локализации. Воспользуйтесь привычным порядком: убедитесь в выполнении требований, подключите пакет, подготовьте сцену, включите VPS и выгрузите WebGL-сборку.
Требования
- Unity 2020 LTS или новее (проверено на 2021+)
- Целевая платформа WebGL
- Доступ к загрузчику архивов AR Clip (https://cdn.mobile.web-ar.studio/clip/pages/zip_uploader.html)
Важно: в редакторе Unity большинство вызовов AR Clip обёрнуты в
Application.isEditor. Для реального поведения выполните сборку WebGL и протестируйте её через мобильное приложение AR Clip.
Установка пакета
- Откройте Window → Package Manager.
- Нажмите + → Add package from Git URL….
- Вставьте
https://github.com/WebAR-Studio/arclip_sdk.gitи подтвердите.
Перед импортом удалите старую папку Assets/ARLib, иначе появятся дублирующиеся типы:
error CS0433: The type 'ARLibTester' exists in both 'ARLib' and 'Assembly-CSharp'
Импорт примеров
В Package Manager → AR Clip → Samples:
- Импортируйте WebGLTemplates и скопируйте полученную папку в
Assets/, чтобы выбрать шаблон в Project Settings → Player → WebGL Template. - Импортируйте TransparentBackground и переместите
TransparentBackground.jslibвAssets/Pluginsдля прозрачного рендера WebGL.
Настройка сцены
- Создайте пустой GameObject
ARClipController. - Добавьте
ARLibControllerи привяжите камеру к полюrenderCamera. - Отключите компонент Camera, выставьте Clear Flags = Solid Color и цвет RGBA(0,0,0,0).
- (Опционально) подключите
ARLibTesterиз примеров для имитации событий в редакторе.
Минимальный скрипт
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}");
}
}
Запуск VPS
Настройте VPS после инициализации и перед запуском локализации:
var settings = new VPSSettings
{
apiKey = "your-api-key",
locationIds = new[] { "your-location-id" }
};
ARLibController.SetupVPS(settings);
ARLibController.StartVPS();
Отслеживайте события:
ARLibController.VPSInitialized— подсистема готова.ARLibController.VPSPositionUpdated— поступают позы локализации.ARLibController.OnVPSErrorHappened— текст ошибки.
Регулируйте частоту запросов методами вроде SetSendPhotoDelay, SetGpsAccuracyBarrier и SetFirstRequestDelay.
Модули трекинга
- Добавляйте изображения через
AddTrackingImageдо включения трекинга. ЖдитеTrackedImagesArrayUpdate, чтобы убедиться в загрузке. - Запускайте поиск плоскостей
EnableSurfaceTracking("horizontal" | "vertical" | "both"). Результаты приходят вSurfaceTrackingUpdated.
Сборка и загрузка
- Выберите шаблон: в Project Settings → Player → WebGL → Resolution and Presentation укажите импортированный шаблон.
- Соберите проект: File → Build Settings → WebGL → Build.
- Заархивируйте: упакуйте содержимое сборки так, чтобы
index.htmlлежал в корне архива. - Загрузите: отправьте архив через https://cdn.mobile.web-ar.studio/clip/pages/zip_uploader.html.
- Протестируйте: отсканируйте QR-код в приложении AR Clip (https://apps.apple.com/app/ar-clip/id6742754238).
Решение проблем
- Нет видеопотока: убедитесь, что
TransparentBackground.jslibнаходится вAssets/Plugins, а камера назначена и отключена. - В редакторе нет событий AR: это ожидаемо — используйте
ARLibTesterили билд WebGL. - Ошибка дублирования типов: удалите старую папку
ARLibперед импортом пакета.