diff --git a/scene/resources/camera_texture.cpp b/scene/resources/camera_texture.cpp index 2e0175b2f49..30aa76067ee 100644 --- a/scene/resources/camera_texture.cpp +++ b/scene/resources/camera_texture.cpp @@ -142,7 +142,12 @@ bool CameraTexture::get_camera_active() const { } } -CameraTexture::CameraTexture() {} +CameraTexture::CameraTexture() { + // Note: When any CameraTexture is created, we need to automatically activate monitoring + // of camera feeds. This may incur a small lag spike, so it may be preferable to + // enable it manually before creating the camera texture. + CameraServer::get_singleton()->set_monitoring_feeds(true); +} CameraTexture::~CameraTexture() { if (_texture.is_valid()) { diff --git a/servers/camera_server.cpp b/servers/camera_server.cpp index 3d01399a84e..f95a8cb7306 100644 --- a/servers/camera_server.cpp +++ b/servers/camera_server.cpp @@ -42,6 +42,7 @@ void CameraServer::_bind_methods() { ClassDB::bind_method(D_METHOD("set_monitoring_feeds", "is_monitoring_feeds"), &CameraServer::set_monitoring_feeds); ClassDB::bind_method(D_METHOD("is_monitoring_feeds"), &CameraServer::is_monitoring_feeds); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "monitoring_feeds"), "set_monitoring_feeds", "is_monitoring_feeds"); + ADD_PROPERTY_DEFAULT("monitoring_feeds", false); ClassDB::bind_method(D_METHOD("get_feed", "index"), &CameraServer::get_feed); ClassDB::bind_method(D_METHOD("get_feed_count"), &CameraServer::get_feed_count);