XRCamera3D
Камера, получающая default-pose позиционного tracker.
XRCamera3D — камера рига, а не контроллер. Конструктор уже задаёт Tracker=head, ProcessMode=Always и PhysicsInterpolationMode=Off. Сохраняйте эти режимы для tracking; размещайте камеру непосредственно под XROrigin3D.
Камера получает pose default выбранного tracker и применяет её GetAdjustedTransform как локальный трансформ. Другие pose, например aim, игнорируются. Родитель добавляет игровой origin один раз. Для выбора tracker используется имя, не числовой ID.
Потеря pose или отсутствие нового tracker не обнуляет прежний трансформ. У камеры нет флага GetHasTrackingData от XREntity3D: проверьте GetPose("default") у её tracker и HasTrackingData самой pose. Не освобождайте заимствованные объекты. Наличие камеры не подтверждает стереовывод; нужны работающий XR-интерфейс и UseXR viewport.
Параметрами проекции управляет XR-путь. Унаследованные экранные project/unproject/frustum в текущем исходнике при XR используют первое представление; не считайте их универсальным результатом для обоих глаз. Это ограничение сверено с исходником, не проверено гарнитурой.
Проверены начальные режимы, выбор default-pose, трансформы и отвязка с искусственным tracker. Реальные pose, проекция, стереокартинка и работа при паузе не проверялись. Настройка: запуск XR.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
XRCamera3DКонструктор
public XRCamera3D();Создаёт камеру с Tracker=head, ProcessMode=Always и отключённой физической интерполяцией. Эти параметры уже задаются конструктором. Нужны XROrigin3D-родитель, рабочий XR-интерфейс и XR viewport для стереовывода; сам конструктор этого не создаёт.
Свойства1
TrackerСвойство
public StringName Tracker { get; set; }Имя позиционного tracker, изначально head. Камера выбирает его pose default; числовых ID здесь нет. Смена отвязывает прежний tracker и привязывает доступный новый. Если его нет, последний трансформ сохраняется; имя само по себе не подтверждает tracking.
Методы2
GetTrackerStringName
public StringName GetTracker();Возвращает настроенное имя tracker, изначально head. Не сообщает, есть ли актуальная pose; проверяйте состояние tracker отдельно.
StringNameНастроенное имя tracker; само по себе не подтверждает tracking.
SetTrackervoid
public void SetTracker(StringName trackerName);Имя позиционного tracker, изначально head. Камера выбирает его pose default; числовых ID здесь нет. Смена отвязывает прежний tracker и привязывает доступный новый. Если его нет, последний трансформ сохраняется; имя само по себе не подтверждает tracking.
| Имя | Тип | По умолчанию |
|---|---|---|
trackerName | StringName | — |
trackerNameТочное имя позиционного tracker; камера использует его pose default.