PartA 导入相机
创建相机组件:
1.导入Camera/CameraComponent.h
2.ExternalCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("ExternalCamera"));
CreateDefaultSubobject作用:为Actor创建组件
格式:MyComponent = CreateDefaultSubobject(TEXT(“MyComponent”));
在蓝图中可以移动相机位置:
UPROPERTY(VisibleAnywhere,Category="CameraComponent")
PartB 设置输入轴
在.h文件中添加
virtual void SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) override;
在cpp文件中添加
首先导入WheeledVehicleMovementComponent.h
void AVehiclePlayer::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) {
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAxis("MoveForward", this, &AVehiclePlayer::MoveForward);
PlayerInputComponent->BindAxis("MoveRight", this, &AVehiclePlayer::MoveRight);
}
void AVehiclePlayer::MoveForward(float Value) {
GetVehicleMovementComponent()->SetThrottleInput(Value);
}
void AVehiclePlayer::MoveRight(float Value) {
GetVehicleMovementComponent()->SetSteeringInput(Value);
}
SetupPlayerInputComponent作用:调用输入的绑定函数
BindAxis与BindAction
- BindAction
格式:InputComponent->BindAction(“ParticleToggleWzh”, IE_DoubleClick, this, &AMyPawn::ParticleToggle2);
说明:参数一为按键绑定的名称,参数二为事件名称(例如按下、松开、双击),参数三为当前对象,参数四为事件方法的函数指针 - BindAxis
格式:InputComponent->BindAxis(“MoveForward”, this, &AMyPawn::MoveForward);
说明:参数一为按键绑定的名称,参数二为当前对象,参数三为事件方法的函数指针
区别:BindAxis与BindAction不同 BindAxis是被动执行的 一运行会一直调用 也就是说不能选择事件 需要加入条件判断语句结合AxisValue才能判断按键
PartC 绑定车轮
在cpp文件的构造器中添加
首先导入WheeledVehicleMovementComponent4W.h
UWheeledVehicleMovementComponent* Vehicle4W =
CastChecked<UWheeledVehicleMovementComponent4W>(GetVehicleMovement());
//检查车轮