vault backup: 2025-08-29 12:28:51

This commit is contained in:
2025-08-29 12:28:51 +08:00
parent 797e870114
commit c78cfffdc1
2 changed files with 20 additions and 5 deletions

View File

@@ -1 +1 @@
{"UBodySetup":{"UBodySetup":{"currentFile":{"count":1,"lastUpdated":1750994347070}}},"Android常用命令":{"Android常用命令":{"internalLink":{"count":1,"lastUpdated":1751942017728}}},"issues":{"issues":{"currentFile":{"count":1,"lastUpdated":1752993735430}}},"TODO清单":{"TODO清单":{"internalLink":{"count":1,"lastUpdated":1753451898745}}},"来Block所有输入。":{"来Block所有输入。":{"currentFile":{"count":1,"lastUpdated":1753454350659}}}}
{"配置IA中的UserSetting选项。":{"配置IA中的UserSetting选项。":{"currentFile":{"count":1,"lastUpdated":1756439877872}}}}

View File

@@ -22,7 +22,6 @@ rating: ⭐
- **Input Mapping Contexts**输入Action的集合。可以为不同GameMode配置不同的 **Input Mapping Contexts**来满足自定义输入的需求。
- **Input Modifiers** 是一种预处理器能够修改UE接收的原始输入值然后再将其发送给输入触发器Input Trigger。增强输入插件随附多种输入修饰器可以执行各种任务例如更改轴顺序、实现"死区"、将轴输入转换为世界空间。
- **Input Triggers**:用于确定用户输入在经过一系列可选输入修饰器的处理后,是否会激活输入映射上下文中的相应输入动作。
- **UEnhancedInputUserSettings** ~~PlayerMappableInputConfig~~**
- 多平台相关位于Project Settings -> Enhanced Input -> Platform Settings -> Input Data
- Mapping Context Redirect将不同的输入设置用于不同的平台。
- Enhanced Input Platform Data为你的游戏添加特定于平台的选项。
@@ -119,7 +118,7 @@ ETriggerState UInputTriggerHold::UpdateState_Implementation(const UEnhancedPlaye
# Lyra中的相关实现
ULyraHeroComponent中的输入绑定
## ULyraHeroComponent中的输入绑定
```c++
void ULyraHeroComponent::InitializePlayerInput(UInputComponent* PlayerInputComponent)
{
@@ -146,14 +145,16 @@ void ULyraHeroComponent::InitializePlayerInput(UInputComponent* PlayerInputCompo
{
if (const ULyraPawnData* PawnData = PawnExtComp->GetPawnData<ULyraPawnData>())
{
//获取ULyraInputConfig DataAesset,存储TArray<FLyraInputAction>FLyraInputAction里为InputAction、GameplayTag。
if (const ULyraInputConfig* InputConfig = PawnData->InputConfig)
{
for (const FInputMappingContextAndPriority& Mapping : DefaultInputMappings)
{
//获取UInputMappingContext并进行注册。
if (UInputMappingContext* IMC = Mapping.InputMapping.Get())
{
if (Mapping.bRegisterWithSettings)
{
{
if (UEnhancedInputUserSettings* Settings = Subsystem->GetUserSettings())
{
Settings->RegisterInputMappingContext(IMC);
@@ -199,4 +200,18 @@ void ULyraHeroComponent::InitializePlayerInput(UInputComponent* PlayerInputCompo
UGameFrameworkComponentManager::SendGameFrameworkComponentExtensionEvent(const_cast<APlayerController*>(PC), NAME_BindInputsNow);
UGameFrameworkComponentManager::SendGameFrameworkComponentExtensionEvent(const_cast<APawn*>(Pawn), NAME_BindInputsNow);
}
```
```
# 按键设置与保存
- [Player Mappable Keys using Enhanced Input](https://dev.epicgames.com/community/learning/tutorials/Vp69/unreal-engine-player-mappable-keys-using-enhanced-input)
## 相关类
- **UEnhancedInputUserSettings** ~~PlayerMappableInputConfig~~ 用户输入设置类。通过EnhancedInputLocalPlayerSubsystem->GetEnhancedInputUserSettings()获取。
- UEnhancedPlayerMappableKeyProfile一个用户当前设置的实例。比如“默认”与“左撇子"。
## 步骤
1. 假设已经配置好了IMC以及IA。
1. 在Controller中注册IMC与IA
2. ProjectSettings - Engine - EnhancedInput - UserSettings中的Enable User Settings
3. 配置IA中的UserSetting选项。
1.