Merge branch 'master' of https://gitea.msbzb.xyz/TNT/lonese
This commit is contained in:
BIN
Content/Blueprints/Anim/ABP_TestChar.uasset
LFS
Normal file
BIN
Content/Blueprints/Anim/ABP_TestChar.uasset
LFS
Normal file
Binary file not shown.
BIN
Content/Blueprints/Anim/BS_Walk_Run.uasset
LFS
Normal file
BIN
Content/Blueprints/Anim/BS_Walk_Run.uasset
LFS
Normal file
Binary file not shown.
Binary file not shown.
@@ -17,8 +17,15 @@ void ACameraPawn::CameraZoom(const FInputActionValue& Value)
|
||||
void ACameraPawn::CameraRotate(const FInputActionValue& Value)
|
||||
{
|
||||
auto f = Value.Get<float>();
|
||||
FRotator r = FRotator(0.0f, f * RotateSpeed, 0.0f);
|
||||
FRotator r = FRotator(0.0f, -f * RotateSpeed, 0.0f);
|
||||
AddActorWorldRotation(r);
|
||||
|
||||
// 同时旋转控制器
|
||||
auto c = Cast<APlayerController>(FollowTarget->GetController());
|
||||
if (c)
|
||||
{
|
||||
c->SetControlRotation(GetActorRotation());
|
||||
}
|
||||
}
|
||||
|
||||
void ACameraPawn::CameraMove(const FInputActionValue& Value)
|
||||
@@ -38,6 +45,13 @@ void ACameraPawn::CameraReset(const FInputActionValue& Value)
|
||||
SpringArmComponent->TargetArmLength = InitialArmLength;
|
||||
SetActorRotation(InitialRotation);
|
||||
SetActorRelativeLocation(FVector::ZeroVector);
|
||||
|
||||
// 同时旋转控制器
|
||||
auto c = Cast<APlayerController>(FollowTarget->GetController());
|
||||
if (c)
|
||||
{
|
||||
c->SetControlRotation(GetActorRotation());
|
||||
}
|
||||
}
|
||||
|
||||
// Sets default values
|
||||
@@ -74,7 +88,7 @@ void ACameraPawn::BeginPlay()
|
||||
|
||||
// 附加到父物体
|
||||
this->AttachToActor(FollowTarget, FAttachmentTransformRules::KeepWorldTransform);
|
||||
|
||||
this->GetRootComponent()->SetAbsolute(false, true, true);
|
||||
}
|
||||
|
||||
// 设置自身旋转
|
||||
|
||||
@@ -12,10 +12,21 @@
|
||||
void AMyCharacter::Move(const FInputActionValue& Value)
|
||||
{
|
||||
auto f2d = Value.Get<FVector2D>();
|
||||
auto f = GetActorForwardVector();
|
||||
auto r = GetActorRightVector();
|
||||
|
||||
// 移动
|
||||
auto f = FRotator(0, GetControlRotation().Yaw, 0).Vector();
|
||||
auto r = -f.Cross(FVector::UpVector);
|
||||
AddMovementInput(f * f2d.X);
|
||||
AddMovementInput(r * f2d.Y);
|
||||
|
||||
// 转向
|
||||
if (f2d.SizeSquared() > 0.01f)
|
||||
{
|
||||
FRotator Rot = FVector(f2d.X, f2d.Y, 0).Rotation() + FRotator(0, GetControlRotation().Yaw, 0);
|
||||
float InterpSpeed = 10.0f;
|
||||
FRotator NewRotation = FMath::RInterpTo(GetActorRotation(), Rot, GetWorld()->GetDeltaSeconds(), InterpSpeed);
|
||||
SetActorRotation(NewRotation);
|
||||
}
|
||||
}
|
||||
|
||||
void AMyCharacter::BeginRun(const FInputActionValue& Value)
|
||||
@@ -84,6 +95,11 @@ AMyCharacter::AMyCharacter()
|
||||
PrimaryActorTick.bCanEverTick = true;
|
||||
|
||||
GetCharacterMovement()->GetNavAgentPropertiesRef().bCanCrouch = true;
|
||||
|
||||
// 禁用控制器旋转
|
||||
bUseControllerRotationPitch = false;
|
||||
bUseControllerRotationYaw = false;
|
||||
bUseControllerRotationRoll = false;
|
||||
}
|
||||
|
||||
// Called when the game starts or when spawned
|
||||
|
||||
Reference in New Issue
Block a user