Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
CameraZoomComponent.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Components/ActorComponent.h"
9#include "CameraZoomComponent.generated.h"
10
11
12UCLASS(ClassGroup=(Camera), meta=(BlueprintSpawnableComponent))
13class CK_UE_API UCameraZoomComponent : public UActorComponent, public ICameraBehaviorInterface
14{
15 GENERATED_BODY()
16
17public:
18 UCameraZoomComponent();
19
20public:
21 virtual void BeginPlay() override;
22
23public:
24 virtual void UpdateCameraBehavior(AGameCameraManager* CameraManager, float DeltaTime) override;
25
26 UFUNCTION(BlueprintCallable, Category = "Camera|Distance")
27 FORCEINLINE void AdjustDistance(float WheelDelta)
28 {
29 TargetDistance = FMath::Clamp(TargetDistance - WheelDelta * ZoomSpeed, GetZoomMin(), GetZoomMax());
30 }
31
32 UFUNCTION(BlueprintCallable, Category = "Camera|Distance")
33 FORCEINLINE void SetTargetDistance(float NewTargetDistance)
34 {
35 TargetDistance = FMath::Clamp(NewTargetDistance, GetZoomMin(), GetZoomMax());
36 }
37
38 UFUNCTION(BlueprintCallable, Category = "Camera|Distance")
39 FORCEINLINE void SetTargetDistanceToMax()
40 {
41 TargetDistance = GetZoomMax();
42 }
43
44 UFUNCTION(BlueprintPure, Category = "Camera|Distance")
45 FORCEINLINE float GetZoomMax() const
46 {
47 return Cast<AGameCameraManager>(GetOwner())->BaseDistance * ZoomMaxRatio;
48 }
49
50 UFUNCTION(BlueprintPure, Category = "Camera|Distance")
51 FORCEINLINE float GetZoomMin() const
52 {
53 return Cast<AGameCameraManager>(GetOwner())->BaseDistance * ZoomMinRatio;
54 }
55
56 UFUNCTION(BlueprintPure, Category = "Camera|Distance")
57 FORCEINLINE float GetTargetDistance() const
58 {
59 return TargetDistance;
60 }
61
62 UFUNCTION(BlueprintPure, Category = "Camera|Distance")
63 FORCEINLINE float GetCurrentDistance() const
64 {
65 return CurrentDistance;
66 }
67
68protected:
69 UPROPERTY(EditDefaultsOnly, Category = "Camera|Distance", meta = (ClampMin = "20.0", ClampMax = "80.0"))
70 float ZoomSpeed = 30.0f;
71
72 UPROPERTY(EditDefaultsOnly, Category = "Camera|Distance", meta = (ClampMin = "3.0", ClampMax = "10.0"))
73 float ZoomAcceleration = 5.0f;
74
75 UPROPERTY(EditDefaultsOnly, Category = "Camera|Distance", meta = (ClampMin = "3.0", ClampMax = "10.0"))
76 float ZoomDeceleration = 5.0f;
77
79 UPROPERTY(EditDefaultsOnly, Category = "Camera|Distance", meta = (ClampMin = "0.0", ClampMax = "3.0"))
80 float ZoomMaxRatio = 1.0f;
81
83 UPROPERTY(EditDefaultsOnly, Category = "Camera|Distance", meta = (ClampMin = "0.0", ClampMax = "1.0"))
84 float ZoomMinRatio = 0.3f;
85
86private:
87 float CurrentDistance = 0.0f;
88 float TargetDistance = 0.0f;
89};
Definition GameCameraManager.h:28
Definition CameraBehaviorInterface.h:21