【UE5】键盘事件

添加游戏中会用到的输入按键
项目资源文末百度网盘自取

打开按键映射面板
在这里插入图片描述

先添加动作映射相关按键
添加映射,命名为Crouch,按下后角色执行动作,选择键盘C
添加映射,命名为Prone,按下后角色执行动作,选择键盘Z
添加映射,命名为Jump,按下后角色执行动作,选择键盘空格
添加映射,命名为LeftShift,选择键盘左Shift按键,
添加映射,命名为Walk,按下后角色执行慢走,选择键盘左Ctrl
添加映射,命名为Alt,选择键盘左Alt键,
添加映射,命名为Interaction,例如拾取物品、跳下飞机、打开降落伞都使用这个按钮,选择按钮键盘F
添加映射,命名为DiscardWeapon,按下后执行扔武器,选择键盘G
添加映射命名为Aiming,按下后打开瞄准镜,选择鼠标右键
添加

### 如何在Unreal Engine 5中通过C++捕获键盘事件 要在 Unreal Engine 5 (UE5) 中使用 C++ 处理键盘事件,开发者可以通过继承 `APlayerController` 或者绑定输入动作来实现这一功能。以下是详细的说明: #### 绑定输入操作 为了响应键盘按键的操作,在 UE5 的项目中可以创建自定义的输入映射,并将其与特定的功能关联起来。这通常涉及修改项目的 Input Settings 和编写相应的 C++ 函数。 1. **设置输入配置** 打开编辑器中的 Project Settings -> Input 部分,添加一个新的 Action Mapping 或 Axis Mapping 来表示所需的键位组合。例如,如果希望检测按下空格键,则可以在 Actions 下新增一个名为 "Jump" 的条目,并将 Space 键分配给它[^3]。 2. **初始化输入组件** 在角色蓝图或者派生自 ACharacter 类别的 C++ 文件里重载 BeginPlay 方法或其他合适的生命周期函数,调用 BindAction() 将上述定义的动作名称链接至实际执行逻辑。 ```cpp void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); // 设置跳跃行为 PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &AMyCharacter::OnJumpKeyPressed); } ``` 3. **定义回调方法** 接下来需要声明并实现 OnJumpKeyPressed 这样的成员函数用于处理具体业务需求。比如让角色跳起、播放动画片段等效果展示出来。 ```cpp void AMyCharacter::OnJumpKeyPressed() { if(bCanJump){ Jump(); GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green,"Space Bar Pressed!"); } } ``` 以上代码展示了当用户按下了之前设定好的“Jump”按钮时触发的行为模式——即打印调试消息以及尝试使当前实例化的对象完成一次跳跃运动[^4]。 #### 使用 UWorld 和 UKismetSystemLibrary 获取更多信息 有时除了简单的交互外还需要获取更多关于世界状态的数据辅助判断条件成立与否;此时可利用引擎提供的工具类如UKismetSystemLibrary来进行额外查询工作。例如检查某个区域是否存在碰撞体阻止进一步移动方向改变前先确认路径畅通无阻等情况发生。 ```cpp FHitResult Hit; bool bBlockingHit = UKismetSystemLibrary::SphereTraceSingleForObjects( GetWorld(), StartLocation, EndLocation, Radius, ObjectTypes, true,//bTraceComplex ActorsToIgnore, EDrawDebugTrace::None, Hit, true//bIgnoreSelf ); if(!bBlockingHit){ SetActorRotation(NewRotator); }else { GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red,FString::Printf(TEXT("Blocked by %s"), *Hit.Actor->GetName())); } ``` 这段伪代码体现了如何运用球形追踪技术探测两点间是否有阻碍物存在从而决定是否允许旋转角度更新的过程[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜_tu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值