vault backup: 2024-02-02 12:39:48

This commit is contained in:
BlueRose 2024-02-02 12:39:48 +08:00
parent 1688bb912d
commit b8e7b4bd38
2 changed files with 53 additions and 2 deletions

View File

@ -129,7 +129,57 @@ uint8 InputPressed:1;
- UAbilityTask_WaitInputPress - UAbilityTask_WaitInputPress
- UAbilityTask_WaitInputRelease - UAbilityTask_WaitInputRelease
理论上是可以将其修改成增强输入的版本只需要将枚举循环改成InputActionContext循环即可。 理论上是可以将其修改成增强输入的版本只需要将枚举循环改成InputActionContext循环即可具体逻辑在角色类中
```c++
void AGSHeroCharacter::BindASCInput()
{
if (!bASCInputBound && IsValid(AbilitySystemComponent) && IsValid(InputComponent))
{
AbilitySystemComponent->BindAbilityActivationToInputComponent(InputComponent, FGameplayAbilityInputBinds(FString("ConfirmTarget"),
FString("CancelTarget"), FString("EGSAbilityInputID"), static_cast<int32>(EGSAbilityInputID::Confirm), static_cast<int32>(EGSAbilityInputID::Cancel)));
bASCInputBound = true;
}
}
FGameplayAbilityInputBinds(FString InConfirmTargetCommand, FString InCancelTargetCommand, FTopLevelAssetPath InEnumPathName, int32 InConfirmTargetInputID = INDEX_NONE, int32 InCancelTargetInputID = INDEX_NONE)
: ConfirmTargetCommand(InConfirmTargetCommand)
, CancelTargetCommand(InCancelTargetCommand)
, EnumPathName(InEnumPathName)
, ConfirmTargetInputID(InConfirmTargetInputID)
, CancelTargetInputID(InCancelTargetInputID)
{
}
```
**ConfirmTarget**、**CancelTarget**需要在DefaultInput.ini中添加对应的配置名字需要对应
**EGSAbilityInputID**为枚举类名称,**EGSAbilityInputID::Confirm**与**EGSAbilityInputID::Cancel**为枚举的index需要与GameplayAbilitySpec中的AbilityInputID对应。具体是在GiveAbility中进行参考[[#GASShooter中给Ability注册按键ID]]。
之后还需要在URPGGameplayAbility中将枚举**ERPGAbilityInputID**修改成
```c++
UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "RPGGameplayAbility|Input")
ERPGAbilityInputID AbilityInputID = ERPGAbilityInputID::None;
```
## GASShooter中给Ability注册按键ID
```c++
void AGSCharacterBase::AddCharacterAbilities()
{
// Grant abilities, but only on the server
if (GetLocalRole() != ROLE_Authority || !IsValid(AbilitySystemComponent) || AbilitySystemComponent->bCharacterAbilitiesGiven)
{
return;
}
for (TSubclassOf<UGSGameplayAbility>& StartupAbility : CharacterAbilities)
{
AbilitySystemComponent->GiveAbility(
FGameplayAbilitySpec(StartupAbility, GetAbilityLevel(StartupAbility.GetDefaultObject()->AbilityID), static_cast<int32>(StartupAbility.GetDefaultObject()->AbilityInputID), this));
}
AbilitySystemComponent->bCharacterAbilitiesGiven = true;
}
```
# SDHGame # SDHGame
李兄是在状态机每个节点的StateBegin()中调用CreateDynamicSkillInputActionMappingContext()进行动态绑定的。FSDHSkillInputActionBinding里包含FEnhancedActionKeyMapping相关数据。 李兄是在状态机每个节点的StateBegin()中调用CreateDynamicSkillInputActionMappingContext()进行动态绑定的。FSDHSkillInputActionBinding里包含FEnhancedActionKeyMapping相关数据。

View File

@ -12,9 +12,10 @@ rating: ⭐
- 参考对象分析 - 参考对象分析
- 星穹铁道 - 星穹铁道
- 破晓传说 - 破晓传说
- 蓝色协议3. - 蓝色协议3
- 非人学园2 - 非人学园2
- 少女前线2 追放 - 少女前线2 追放
- https://www.bilibili.com/video/BV1pt421H7EH/?buvid=38ddfe416af6e23f1aada0674f307e3e&from_spmid=tm.recommend.0.0&is_story_h5=false&mid=a0AUwJxrG%2FcYg0AorRjOGA%3D%3D&p=1&plat_id=116&share_from=ugc&share_medium=iphone&share_plat=ios&share_session_id=CD0CF499-8DF5-48F5-A03A-7A3AE61FFF3A&share_source=COPY&share_tag=s_i&spmid=united.player-video-detail.0.0&timestamp=1706754945&unique_k=44q6hra&up_id=140517136&vd_source=d47c0bb42f9c72fd7d74562185cee290
- 明日方舟终末地 - 明日方舟终末地
>PS. 先实现一波Cel之后再实现Thickly - Coated。 >PS. 先实现一波Cel之后再实现Thickly - Coated。