添加一个Get Actor Forward Vector 节点。 接下来,添加一个Add Movement Input 节点。该节点将接受一个方向和值,并将其转换为一个存储的偏移量。像这样连接节点: 白线代表一个执行链。换句话说,当玩家输入axis移动时,将产生一个事件,该事件将执行InputAxis MoveForward 节点。白线表示,一旦发生这种情况,将执行 Add...
Add Movement Input节点将玩家朝向向量与Scale Value相乘,使得不同按键控制输出不同方向的向量。什么都不按,意味着向量并没有方向,角色原地不动 CharacterMovement组件获得Add Movement Input节点的输出,驱动角色朝指定方向移动 MoveRight按以上步骤操作,不过记得将Get Actor Forward Vector节点改为Get Actor Right Vector节点。
Add Movement Input节点将玩家朝向向量与Scale Value相乘,使得不同按键控制输出不同方向的向量。什么都不按,意味着向量并没有方向,角色原地不动 CharacterMovement组件获得Add Movement Input节点的输出,驱动角色朝指定方向移动 MoveRight按以上步骤操作,不过记得将Get Actor Forward Vector节点改为Get Actor Right Vector节点。
PlayerInputComponent->BindAxis("Look Up / Down Gamepad", this, &AROTDCharacter::LookUpAtRate); } void AROTDCharacter::MoveForward(float Value) { if (Value != 0.0f) { // add movement in that direction AddMovementInput(GetActorForwardVector(), Value); } } void AROTDCharacter::MoveRight(...
CharacterMovement组件将从Add Movement Input获得结果。然后它将向那个方向移动 Pawn。 对MoveRight重复该过程,但将Get Actor Forward Vector替换为Get Actor Right Vector。 在您可以测试移动之前,您需要在游戏模式中设置默认 pawn。 1-3设置默认 Pawn 单击编译,然后返回主编辑器。打开World Settings面板并找到Game Mode...
Source/Engine/Source/Runtime/Engine/Private/Pawn.cpp virtualvoidAddMovementInput &40; FVector WorldDirection, floatScaleValue, boolbForce &41; Remarks Add movement input along the given world direction vector (usually normalized) scaled by 'ScaleValue'. If ScaleValue < 0, movement will be in the...
前面 是x 垂直是z水平 是y// 获取向前向量constFVector ForwardDirection=FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X);//获取向右向量constFVector RightDirection=FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y);// add movementAddMovementInput(ForwardDirection,MovementVector.Y);AddMovementInput(...
voidAPawn::Internal_AddMovementInput(FVectorWorldAccel,boolbForce){if(bForce||!IsMoveInputIgnored()){ControlInputVector+=WorldAccel;}} WorldAccel是当帧输入转化为的一个向量,可以理解为力或者加速度的方向。ControlInputVector是Pawn的一个成员变量,记录了未被处理的上次输入。 这两个变量的计算和使用,稍后我...
OurMovementComponent->AddInputVector(GetActorRightVector() *AxisValue); } }//左右转动视角voidACollidingPawn::Turn(floatAxisValue) { FRotator NewRotation=GetActorRotation(); NewRotation.Yaw+=AxisValue; SetActorRotation(NewRotation); } 然后将这三个方法在ACollidingPawn::SetupPlayerInputComponent中注册...
location.Z =0.0f; scaleValue =1.0f; target =GetWorld()->SpawnActor<ATargetPoint>(location, FRotator::ZeroRotator); target->SetActorLocation(location);// get AI vehicle referencevehicle =Cast<AWheeledVehicle>(pawn);// add forward movement to vehicle, scale = 1vehicle->AddMovementInput(GetAc...