vault backup: 2024-02-02 12:39:48
This commit is contained in:
parent
1688bb912d
commit
b8e7b4bd38
@ -129,7 +129,57 @@ uint8 InputPressed:1;
|
||||
- UAbilityTask_WaitInputPress
|
||||
- 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
|
||||
李兄是在状态机每个节点的StateBegin()中调用CreateDynamicSkillInputActionMappingContext()进行动态绑定的。FSDHSkillInputActionBinding里包含FEnhancedActionKeyMapping相关数据。
|
||||
|
@ -12,9 +12,10 @@ rating: ⭐
|
||||
- 参考对象分析
|
||||
- 星穹铁道
|
||||
- 破晓传说
|
||||
- 蓝色协议3.
|
||||
- 蓝色协议3
|
||||
- 非人学园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×tamp=1706754945&unique_k=44q6hra&up_id=140517136&vd_source=d47c0bb42f9c72fd7d74562185cee290
|
||||
- 明日方舟终末地
|
||||
|
||||
>PS. 先实现一波Cel,之后再实现Thickly - Coated。
|
||||
|
Loading…
x
Reference in New Issue
Block a user