Как узнать, когда начинается сеанс xr three.js webxr

Я хочу переключить свойство стиля моего каталога карусели при запуске сеанса ar, поэтому я пишу это:

const session = renderer.xr.getSession();

session.addEventListener( 'start', function () {
                            slider.style.display = "block";

                        });

Но это не работает, как узнать, когда начинается сеанс xr?


person aryanknp    schedule 29.01.2021    source источник


Ответы (1)


как узнать, когда начинается сеанс xr?

Лучше всего проверить доступное только для чтения свойство renderer. xr.isPresenting. Когда это свойство равно true, вы знаете, что сеанс WebXR активен.

person Mugen87    schedule 29.01.2021
comment
Большое спасибо, но не могли бы вы предложить мне прослушиватель событий, а не проверять, потому что мне нужен прослушиватель и я хочу проверить, когда он не активен? - person aryanknp; 29.01.2021
comment
есть конечный слушатель, который работает, но запуск не работает - person aryanknp; 29.01.2021
comment
Попробуйте добавить прослушиватель событий в диспетчер WebXR, например: renderer.xr.addEventListener( 'sessionstart', start );. - person Mugen87; 29.01.2021
comment
первый раз не работает, а когда нажимаю кнопку "назад" и снова нажимаю кнопку "стартар" все работает, в чем может быть проблема - person aryanknp; 29.01.2021
comment
Можете ли вы помочь мне с этим? - person aryanknp; 29.01.2021
comment
Извините, я проверил прослушиватель событий, добавив его в пример webxr_vr_cubes и используя эмулятор WebXR API для Chrome. Событие срабатывает, как и ожидалось. - person Mugen87; 29.01.2021
comment
Моя ошибка заключалась в том, что я прикрепил прослушиватель к условию, которое работало только при прохождении кадра, но в первый раз кадра не было, поэтому я написал его вне условия, и теперь он работает отлично. - person aryanknp; 30.01.2021