// Copyright 2026 (c) Jupiter. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Subsystems/WorldSubsystem.h" #include "Tickable.h" #include "CameraCaptureSubSystem.generated.h" class ACameraCaptureActor; UCLASS() class CAMERACAPTURE_API UCameraCaptureSubSystem : public UWorldSubsystem, public FTickableGameObject { GENERATED_BODY() public: virtual void Initialize(FSubsystemCollectionBase& Collection) override; virtual void Deinitialize() override; virtual void OnWorldBeginPlay(UWorld& InWorld) override; virtual void Tick(float DeltaTime) override; virtual TStatId GetStatId() const override; virtual bool IsTickable() const override { return true; } private: void CaptureViewToImageTick(); void AsyncWriteImageToDisk(TArray& AtlasPixels, const int32 AtlasW, const int32 AtlasH); TArray> AllCaptureCameras; // 输出的目录 UPROPERTY() FString OutPutDirectoryPath; };