1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-11 13:10:58 +00:00

XR: Allow locking the camera to the XROrigin3D for benchmarking or automated testing

This commit is contained in:
David Snopek
2024-11-12 14:36:58 -06:00
parent 0f5f3bc954
commit d6a4fe6c05
4 changed files with 26 additions and 1 deletions

View File

@@ -62,9 +62,12 @@ void XRServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("clear_reference_frame"), &XRServer::clear_reference_frame);
ClassDB::bind_method(D_METHOD("center_on_hmd", "rotation_mode", "keep_height"), &XRServer::center_on_hmd);
ClassDB::bind_method(D_METHOD("get_hmd_transform"), &XRServer::get_hmd_transform);
ClassDB::bind_method(D_METHOD("set_camera_locked_to_origin", "enabled"), &XRServer::set_camera_locked_to_origin);
ClassDB::bind_method(D_METHOD("is_camera_locked_to_origin"), &XRServer::is_camera_locked_to_origin);
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "world_scale"), "set_world_scale", "get_world_scale");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "world_origin"), "set_world_origin", "get_world_origin");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "camera_locked_to_origin"), "set_camera_locked_to_origin", "is_camera_locked_to_origin");
ClassDB::bind_method(D_METHOD("add_interface", "interface"), &XRServer::add_interface);
ClassDB::bind_method(D_METHOD("get_interface_count"), &XRServer::get_interface_count);
@@ -241,6 +244,10 @@ Transform3D XRServer::get_hmd_transform() {
return hmd_transform;
}
void XRServer::set_camera_locked_to_origin(bool p_enable) {
camera_locked_to_origin = p_enable;
}
void XRServer::add_interface(const Ref<XRInterface> &p_interface) {
ERR_FAIL_COND(p_interface.is_null());