虚幻引擎UE5专用服务器游戏开发-32 使用Gameplay Tags阻止连招触发
目标:我们上节用GameplayAbility使角色可以连击攻击,但是,当不断的按下鼠标左键时,蒙太奇动画又重新开始播放,使得动画很怪异,现在要解决这个问题,当蒙太奇播放时,再按鼠标左键时,蒙太奇不会重新播放.
方法:可以使用标签功能
方法一:蓝图标签设置
打开蓝图:/All/Game/Character/Crunch/GameplayAbility/Combo:
GA_Combo_Crunch_BP
资产标签选择:
用标签阻止能力:
效果:
方法二:C++添加标签
Source/Crunch/Public/GAS/CAbilitySystemStatics.h:
// Copyright@ChenChao#pragma once#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
#include "CAbilitySystemStatics.generated.h"/*** */UCLASS()
class CRUNCH_API UCAbilitySystemStatics : public UBlueprintFunctionLibrary
{GENERATED_BODY()
public:static FGameplayTag GetBasicAttackAbilityTag();
};
Source/Crunch/Private/GAS/CAbilitySystemStatics.cpp:
// Copyright@ChenChao#include "GAS/CAbilitySystemStatics.h"FGameplayTag UCAbilitySystemStatics::GetBasicAttackAbilityTag()
{return FGameplayTag::RequestGameplayTag(FName("Ability.BasicAttack"));
}
我们在Config/DefaultGameplayTags.ini中添加标签:
;METADATA=(Diff=true, UseCommands=true)
[/Script/GameplayTags.GameplayTagsSettings]
ImportTagsFromConfig=True
WarnOnInvalidTags=True
ClearInvalidTags=False
AllowEditorTagUnloading=True
AllowGameTagUnloading=False
FastReplication=False
bDynamicReplication=False
InvalidTagCharacters="\"\',"
NumBitsForContainerSize=6
NetIndexFirstBitSegment=16
+GameplayTagList=(Tag="Ability.BasicAttack",DevComment="基础攻击")
Source/Crunch/Public/GAS/GameplayAbility/GA_Combo.h:
构造函数添加标签:
public:UGA_Combo();
Source/Crunch/Private/GAS/GameplayAbility/GA_Combo.cpp:
UGA_Combo::UGA_Combo()
{AbilityTags.AddTag(UCAbilitySystemStatics::GetBasicAttackAbilityTag());BlockAbilitiesWithTag.AddTag(UCAbilitySystemStatics::GetBasicAttackAbilityTag());
}