【UE4 C++】Input事件与输入绑定
2021/4/22 20:55:24
本文主要是介绍【UE4 C++】Input事件与输入绑定,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
轴映射与动作映射
编辑器设置input+代码实现具体动作
void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); PlayerInputComponent->BindAction("DropItem", EInputEvent::IE_Pressed, this, &AMyCharacter::DropItem); PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &AMyCharacter::Jump); PlayerInputComponent->BindAxis("MoveForward", this, &AMyCharacter::MoveForward); PlayerInputComponent->BindAxis("MoveRight", this, &AMyCharacter::MoveRight); PlayerInputComponent->BindAxis("PitchCamera", this, &AMyCharacter::PitchCamera); PlayerInputComponent->BindAxis("YawCamera", this, &AMyCharacter::YawCamera); } void AMyCharacter::MoveForward(float AxisValue) { MovementInput.X = FMath::Clamp<float>(AxisValue, -1.f, 1.f); } void AMyCharacter::MoveRight(float AxisValue) { MovementInput.Y = FMath::Clamp<float>(AxisValue, -1.f, 1.f); } void AMyCharacter::PitchCamera(float AxisValue) { CameraInput.Y = AxisValue; } void AMyCharacter::YawCamera(float AxisValue) { CameraInput.X = AxisValue; }
从C++中添加轴和动作映射
//添加、绑定ActionKeyMapping轴映射 方法一 FInputActionKeyMapping onFire("OnFire", EKeys::LeftMouseButton, 0, 0, 0, 0); UPlayerInput::AddEngineDefinedActionMapping(onFire); PlayerInputComponent->BindAction("OnFire", IE_Pressed, this, &AMyCharacter::OnFire); //添加、绑定ActionKeyMapping轴映射 方法二 UPlayerInput::AddEngineDefinedActionMapping(FInputActionKeyMapping("Sprint",EKeys::LeftShift)); PlayerInputComponent->BindAction("Sprint", IE_Pressed,this,&AMyCharacter::StartSprint); PlayerInputComponent->BindAction("Sprint", IE_Released,this,&AMyCharacter::StopSprint); //添加、绑定AxisMapping轴映射 UPlayerInput::AddEngineDefinedAxisMapping(FInputAxisKeyMapping("Turn", EKeys::MouseX, 1.0f)); PlayerInputComponent->BindAxis("Turn", this, &AMyCharacter::OnTurn);
这篇关于【UE4 C++】Input事件与输入绑定的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享