From 07afc8a00b05bd484e43f289558cf3324b31d590 Mon Sep 17 00:00:00 2001 From: meishibiezb <750783119@qq.com> Date: Sun, 15 Mar 2026 23:37:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8A=A0=E5=85=A5=E6=91=84=E5=83=8F?= =?UTF-8?q?=E5=A4=B4=E7=A7=BB=E5=8A=A8=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/lonese/CameraPawn.cpp | 5 ++++- Source/lonese/CameraPawn.h | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/lonese/CameraPawn.cpp b/Source/lonese/CameraPawn.cpp index 2e8bbe3..acdeaf8 100644 --- a/Source/lonese/CameraPawn.cpp +++ b/Source/lonese/CameraPawn.cpp @@ -27,7 +27,10 @@ void ACameraPawn::CameraMove(const FInputActionValue& Value) auto r = GetActorRightVector(); auto f = r.Cross(FVector::UpVector); f.Normalize(); - SetActorLocation(GetActorLocation() + f * f2d.X * MoveSpeed + r * f2d.Y * MoveSpeed); + auto l = GetRootComponent()->GetRelativeLocation() + f * f2d.X * MoveSpeed + r * f2d.Y * MoveSpeed; + l.X = FMath::Clamp(l.X, -CameraMoveClamp, CameraMoveClamp); + l.Y = FMath::Clamp(l.Y, -CameraMoveClamp, CameraMoveClamp); + SetActorRelativeLocation(l); } void ACameraPawn::CameraReset(const FInputActionValue& Value) diff --git a/Source/lonese/CameraPawn.h b/Source/lonese/CameraPawn.h index 64160f8..14e6136 100644 --- a/Source/lonese/CameraPawn.h +++ b/Source/lonese/CameraPawn.h @@ -33,6 +33,8 @@ public: 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);