我是UE4的初学者。我尝试用一个不真实的花砖制作一个可控的碰撞棋子,并完成一个不滚动的移动球。如何在其运动中增加旋转力?
我试图通过以下控制方法来更新旋转:MoveForwad(),MoveRight(),并且一开始我发现如果我仅旋转根组件,整个(包括摄像头)将旋转。因此,我尝试更改其网格上的旋转。 但是结果是它有时掉下来。
下面是典当类的一部分 变量: StaticMeshComponent * SphereVisual;
OurMovement:这是PawnMovementComponent的派生类
// 代码:
void AMyPawn::MoveForward(float AxisValue)
{
if (OurMovement && (OurMovement->UpdatedComponent == RootComponent))
{
OurMovement->AddInputVector(GetActorForwardVector() * AxisValue);
FRotator NewRotation = SphereVisual->GetComponentRotation();
NewRotation.Pitch += AxisValue;//here
SphereVisual->SetWorldRotation(NewRotation);//here
//UE_LOG(LogTemp, Warning, TEXT("The current Rotation %s"), *(SphereVisual->GetComponentTransform().GetRotation().ToString()));
}
}
void AMyPawn::MoveRight(float AxisValue)
{
if (OurMovement && (OurMovement->UpdatedComponent == RootComponent))
{
OurMovement->AddInputVector(GetActorRightVector() * AxisValue);
FRotator NewRotation = SphereVisual->GetComponentRotation();
NewRotation.Roll += AxisValue;//Here
SphereVisual->SetWorldRotation(NewRotation);//Here
}
}
void AMyPawn::Turn(float AxisValue)
{
FRotator NewRotation = GetActorRotation();
NewRotation.Yaw += AxisValue;
SetActorRotation(NewRotation);
}
你们能给我一些建议吗?提前谢谢...