use XrSessionCreated schedule to init the Views

Signed-off-by: Schmarni <marnistromer@gmail.com>
This commit is contained in:
Schmarni
2025-02-05 19:00:00 +01:00
parent dcdf362efa
commit 8a3719a019
2 changed files with 18 additions and 9 deletions

View File

@@ -10,8 +10,11 @@ use bevy::{
transform::TransformSystem,
};
use bevy_mod_xr::{
camera::{XrCamera, XrProjection},
session::{XrFirst, XrHandleEvents, XrPreDestroySession, XrRenderSet, XrRootTransform},
camera::{XrCamera, XrProjection, XrViewInit},
session::{
XrFirst, XrHandleEvents, XrPreDestroySession, XrRenderSet, XrRootTransform,
XrSessionCreated,
},
spaces::XrPrimaryReferenceSpace,
};
use openxr::ViewStateFlags;
@@ -55,16 +58,19 @@ impl Plugin for OxrRenderPlugin {
(
wait_frame.run_if(should_run_frame_loop),
update_cameras.run_if(should_run_frame_loop),
if self.spawn_cameras {
init_views::<true>
} else {
init_views::<false>
}
.run_if(resource_added::<OxrSession>),
)
.chain()
.in_set(XrHandleEvents::FrameLoop),
)
.add_systems(
XrSessionCreated,
if self.spawn_cameras {
init_views::<true>
} else {
init_views::<false>
}
.in_set(XrViewInit),
)
.add_systems(
PostUpdate,
(locate_views, update_views)