| // Copyright Epic Games, Inc. All Rights Reserved. | |
| /** | |
| * Simple side scrolling camera with smooth scrolling and horizontal bounds | |
| */ | |
| UCLASS() | |
| class ASideScrollingCameraManager : public APlayerCameraManager | |
| { | |
| GENERATED_BODY() | |
| public: | |
| /** Overrides the default camera view target calculation */ | |
| virtual void UpdateViewTarget(FTViewTarget& OutVT, float DeltaTime) override; | |
| public: | |
| /** How close we want to stay to the view target */ | |
| UPROPERTY(EditAnywhere, Category="Side Scrolling Camera", meta=(ClampMin=0, ClampMax=10000, Units="cm")) | |
| float CurrentZoom = 1000.0f; | |
| /** How far above the target do we want the camera to focus */ | |
| UPROPERTY(EditAnywhere, Category="Side Scrolling Camera", meta=(ClampMin=0, ClampMax=10000, Units="cm")) | |
| float CameraZOffset = 100.0f; | |
| /** Minimum camera scrolling bounds in world space */ | |
| UPROPERTY(EditAnywhere, Category="Side Scrolling Camera", meta=(ClampMin=-100000, ClampMax=100000, Units="cm")) | |
| float CameraXMinBounds = -400.0f; | |
| /** Maximum camera scrolling bounds in world space */ | |
| UPROPERTY(EditAnywhere, Category="Side Scrolling Camera", meta=(ClampMin=-100000, ClampMax=100000, Units="cm")) | |
| float CameraXMaxBounds = 10000.0f; | |
| protected: | |
| /** Last cached camera vertical location. The camera only adjusts its height if necessary. */ | |
| float CurrentZ = 0.0f; | |
| /** First-time update camera setup flag */ | |
| bool bSetup = true; | |
| }; | |