XRServer
Успадковує: Object
Статус на сервери.
Опис
Сервер AR/VR – це серце нашого рішення про розширену та віртуальну реальність та ручить всю обробку.
Посібники
Властивості
|
||
|
||
|
Методи
void |
add_interface(interface: XRInterface) |
void |
add_tracker(tracker: XRTracker) |
void |
center_on_hmd(rotation_mode: RotationMode, keep_height: bool) |
void |
|
find_interface(name: String) const |
|
get_interface(idx: int) const |
|
get_interface_count() const |
|
get_interfaces() const |
|
get_reference_frame() const |
|
get_tracker(tracker_name: StringName) const |
|
get_trackers(tracker_types: int) |
|
void |
remove_interface(interface: XRInterface) |
void |
remove_tracker(tracker: XRTracker) |
Сигнали
interface_added(interface_name: StringName) 🔗
При додаванні нового інтерфейсу.
interface_removed(interface_name: StringName) 🔗
При видаленні інтерфейсу.
reference_frame_changed() 🔗
Випробувано при перетворенні посилань.
tracker_added(tracker_name: StringName, type: int) 🔗
При додаванні нового трекера. Якщо ви не використовуєте фіксовану кількість контролерів або якщо ви використовуєте XRAnchor3D для AR-рішення, важливо реагувати на цей сигнал, щоб додати відповідні XRController3D або XRAnchor3D вершини, пов'язані з цим новим трекером.
tracker_removed(tracker_name: StringName, type: int) 🔗
При видаленні трекера. Ви повинні видалити будь-які XRController3D або XRAnchor3D точки, якщо це можливо. Це не обов'язково, вершини просто стають неактивними і будуть зроблені активні знову, коли новий трекер стає доступний (тобто новий контролер переключається на це місце попереднього).
tracker_updated(tracker_name: StringName, type: int) 🔗
Увімкнено, коли було оновлено існуючий трекер. Це може статися, якщо контролери переключення користувача.
Переліки
enum TrackerType: 🔗
TrackerType TRACKER_HEAD = 1
Трекер відстежує розташування голови гравця. Зазвичай це місце по центру між очима гравця. Зверніть увагу, що для портативних пристроїв доповненої реальності це може бути поточне розташування пристрою.
TrackerType TRACKER_CONTROLLER = 2
Трекер відстежує розташування контролера.
TrackerType TRACKER_BASESTATION = 4
Трекер відстежує розташування базової станції.
TrackerType TRACKER_ANCHOR = 8
Трекер відстежує місце розташування та розмір анкеру AR.
TrackerType TRACKER_HAND = 16
Трекер відстежує розташування та суглоби руки.
TrackerType TRACKER_BODY = 32
Трекер відстежує розташування і суглоби тіла.
TrackerType TRACKER_FACE = 64
Трекер відстежує вирази обличчя.
TrackerType TRACKER_ANY_KNOWN = 127
Використовуються внутрішні фільтри будь-якого відомого типу.
TrackerType TRACKER_UNKNOWN = 128
Використовується внутрішньо, якщо ми ще не обрали тип трекеру.
TrackerType TRACKER_ANY = 255
Використовується внутрішньо для вибору всіх трекерів.
enum RotationMode: 🔗
RotationMode RESET_FULL_ROTATION = 0
Повністю скидати орієнтацію HMD. Незалежно від того, що користувач шукає в реальному світі. У віртуальному світі користувач буде виглядати мертво.
RotationMode RESET_BUT_KEEP_TILT = 1
Сприяє орієнтації, але зберігає нахил пристрою. Отже, якщо ми дивимося, ми продовжуємо шукати, але заголовок буде скидати.
RotationMode DONT_RESET_ROTATION = 2
Чи не скинути орієнтацію HMD, тільки позиція гравця отримує центрований.
Описи властивостей
bool camera_locked_to_origin = false 🔗
Якщо встановлено значення true, сцена відображатиметься так, ніби камеру заблоковано на XROrigin3D.
Примітка. Це не дуже зручно для користувачів. Цей параметр існує для порівняльного аналізу або автоматичного тестування, коли ви хочете контролювати те, що відображається за допомогою коду.
XRInterface primary_interface 🔗
void set_primary_interface(value: XRInterface)
XRInterface get_primary_interface()
XRInterface в даний час межує з XRServer.
Transform3D world_origin = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) 🔗
void set_world_origin(value: Transform3D)
Transform3D get_world_origin()
Поточне походження нашого місця відстеження у віртуальному світі. Це використовується рендерером для коректного розміщення камери з новими даними відстеження.
Примітка: Ця властивість управляється поточною XROrigin3D вершиною. Підходить для доступу від GDExtensions.
Шкала світу гри у порівнянні з реальним світом. За замовчуванням більшість платформ AR/VR припускають, що 1 ігровий блок відповідає дійсному світовому метру.
Описи методів
void add_interface(interface: XRInterface) 🔗
Реєструє об'єкт XRInterface.
void add_tracker(tracker: XRTracker) 🔗
Реєструє новий XRTracker, який відстежує фізичний об'єкт.
void center_on_hmd(rotation_mode: RotationMode, keep_height: bool) 🔗
Цю функцію потрібно правильно розуміти. Платформи AR та VR обробляють позиціонування дещо по-різному.
Для платформ, які не пропонують просторового відстеження, наша початкова точка (0, 0, 0) – це розташування нашого HMD, але ви мало контролюєте напрямок, куди дивиться гравець у реальному світі.
Для платформ, які пропонують просторове відстеження, наша початкова точка дуже залежить від системи. Для OpenVR наша початкова точка зазвичай є центром простору відстеження на землі. Для інших платформ це часто розташування камери відстеження.
Цей метод дозволяє вам центрувати трекер на місці HMD. Він візьме поточне розташування HMD і використає його для коригування всіх ваших даних відстеження; по суті, переналаштує реальний світ відповідно до поточного положення вашого гравця в ігровому світі.
Щоб цей метод дав корисні результати, інформація про відстеження має бути доступна. Це часто займає кілька кадрів після запуску гри.
Вам слід викликати цей метод через кілька секунд. Наприклад, коли користувач запитує переналаштування дисплея, утримуючи призначену кнопку на контролері протягом короткого періоду часу, або під час реалізації механізму телепортації.
void clear_reference_frame() 🔗
Очищає посилання, яка була встановлена попередніми дзвінками до center_on_hmd().
XRInterface find_interface(name: String) const 🔗
Знайдіть інтерфейс за назвою name. Наприклад, якщо ваш проект використовує можливості платформи AR/VR, ви можете знайти інтерфейс для цієї платформи за назвою та ініціалізації його.
Transform3D get_hmd_transform() 🔗
Повертає трансформацію основного інтерфейсу.
XRInterface get_interface(idx: int) const 🔗
Повертаємо інтерфейс, зареєстрований в індексі idx у списку інтерфейсів.
int get_interface_count() const 🔗
Повертаємо кількість інтерфейсів, які зареєстровані на сервері AR/VR. Якщо ваш проект підтримує декілька платформ AR/VR, ви можете переглянути наявний інтерфейс, і будь-ласка, користувач з вибором або просто спробувати ініціалізації кожного інтерфейсу і використовувати перший, який повертає true.
Array[Dictionary] get_interfaces() const 🔗
Повертає список доступних інтерфейсів, ідентифікаторів та назви кожного інтерфейсу.
Transform3D get_reference_frame() const 🔗
Повертаємо еталонну раму перетворення. Найпопулярніші інтерфейси побудови GDExtension.
XRTracker get_tracker(tracker_name: StringName) const 🔗
Повертає позиційний трекер з вказаною tracker_name.
Dictionary get_trackers(tracker_types: int) 🔗
Повернення словника трекерів для tracker_types.
void remove_interface(interface: XRInterface) 🔗
Видаляє це interface.
void remove_tracker(tracker: XRTracker) 🔗
Видаляє цей tracker.