diff --git a/CHANGES.md b/CHANGES.md index 4c2eda899..9ea417e10 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,9 @@ # Change Log {#changes} +### v2.21.0 - ??? + +- Add option on ACesium3DTileset to disable automatic detection of ASceneCapture2D actors to update the visible area. + ### v2.20.0 - 2025-10-01 ##### Additions :tada: diff --git a/Source/CesiumRuntime/Private/Cesium3DTileset.cpp b/Source/CesiumRuntime/Private/Cesium3DTileset.cpp index 07554d883..cc8f5e404 100644 --- a/Source/CesiumRuntime/Private/Cesium3DTileset.cpp +++ b/Source/CesiumRuntime/Private/Cesium3DTileset.cpp @@ -1289,11 +1289,13 @@ std::vector ACesium3DTileset::GetCameras() const { TRACE_CPUPROFILER_EVENT_SCOPE(Cesium::CollectCameras) std::vector cameras = this->GetPlayerCameras(); - std::vector sceneCaptures = this->GetSceneCaptures(); - cameras.insert( - cameras.end(), - std::make_move_iterator(sceneCaptures.begin()), - std::make_move_iterator(sceneCaptures.end())); + if (AutoDetectSceneCaptureActors) { + std::vector sceneCaptures = this->GetSceneCaptures(); + cameras.insert( + cameras.end(), + std::make_move_iterator(sceneCaptures.begin()), + std::make_move_iterator(sceneCaptures.end())); + } #if WITH_EDITOR std::vector editorCameras = this->GetEditorCameras(); diff --git a/Source/CesiumRuntime/Public/Cesium3DTileset.h b/Source/CesiumRuntime/Public/Cesium3DTileset.h index 2aa951bb1..791f9ac04 100644 --- a/Source/CesiumRuntime/Public/Cesium3DTileset.h +++ b/Source/CesiumRuntime/Public/Cesium3DTileset.h @@ -322,6 +322,13 @@ class CESIUMRUNTIME_API ACesium3DTileset : public AActor { UFUNCTION(BlueprintSetter, Category = "Cesium") void SetCameraManager(TSoftObjectPtr NewCameraManager); + /** + * Whether or not to automatically detect and use all ASceneCapture2D actors + * in the scene to update the tileset visible area. + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium") + bool AutoDetectSceneCaptureActors = true; + /** * Resolves the Cesium Camera Manager to use with this Actor. Returns * the value of the CameraManager property if it is set. Otherwise, finds a