目标:我们上节用GameplayAbility使角色可以连击攻击,但是,当不断的按下鼠标左键时,蒙太奇动画又重新开始播放,使得动画很怪异,现在要解决这个问题,当蒙太奇播放时,再按鼠标左键时,蒙太奇不会重新播放.
方法:可以使用标签功能
方法一:蓝图标签设置
打开蓝图:/All/Game/Character/Crunch/GameplayAbility/Combo:
GA_Combo_Crunch_BP



资产标签选择:

用标签阻止能力:

效果:

方法二:C++添加标签

Source/Crunch/Public/GAS/CAbilitySystemStatics.h:
cpp
// 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:
cpp
// Copyright@ChenChao
#include "GAS/CAbilitySystemStatics.h"
FGameplayTag UCAbilitySystemStatics::GetBasicAttackAbilityTag()
{
return FGameplayTag::RequestGameplayTag(FName("Ability.BasicAttack"));
}
我们在Config/DefaultGameplayTags.ini中添加标签:
cpp
;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:
构造函数添加标签:
cpp
public:
UGA_Combo();
Source/Crunch/Private/GAS/GameplayAbility/GA_Combo.cpp:
cpp
UGA_Combo::UGA_Combo()
{
AbilityTags.AddTag(UCAbilitySystemStatics::GetBasicAttackAbilityTag());
BlockAbilitiesWithTag.AddTag(UCAbilitySystemStatics::GetBasicAttackAbilityTag());
}