// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/Pawn.h" #include "CameraPawn.generated.h" UCLASS() class LONESE_API ACameraPawn : public APawn { GENERATED_BODY() public: UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Camera") class USpringArmComponent* SpringArmComponent; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Camera") class UCameraComponent* CameraComponent; UPROPERTY(VisibleInstanceOnly, BlueprintReadOnly, Category = "Camera") APawn* FollowTarget; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Config") FRotator InitialRotation = FRotator(-60.0f, 0.0f, 0.0f); UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Config") float InitialArmLength = 1200.0f; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Config") float RotateSpeed = 2.0f; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Config") float ZoomSpeed =10.0f; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Config") float MoveSpeed = 10.0f; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Config") float MaxArmLength = 3000.0f; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Config") float MinArmLength = 300.0f; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Config") double CameraMoveClamp = 800.0; UFUNCTION(BlueprintCallable, Category = "Camera") void CameraZoom(const FInputActionValue& Value); UFUNCTION(BlueprintCallable, Category = "Camera") void CameraRotate(const FInputActionValue& Value); UFUNCTION(BlueprintCallable, Category = "Camera") void CameraMove(const FInputActionValue& Value); UFUNCTION(BlueprintCallable, Category = "Camera") void CameraReset(const FInputActionValue& Value); // Sets default values for this pawn's properties ACameraPawn(); // Called every frame virtual void Tick(float DeltaTime) override; // Called to bind functionality to input virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; protected: // Called when the game starts or when spawned virtual void BeginPlay() override; private: };