虚幻引擎UE5专用服务器游戏开发-32 使用Gameplay Tags阻止连招触发

目标:我们上节用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());
}
相关推荐
迷途之人不知返4 小时前
List的模拟实现
数据结构·c++·学习·list
魔士于安4 小时前
Unity windows 同步 异步 打开文件文件夹工具
游戏·unity·游戏引擎·贴图·模型
无敌秋4 小时前
C++ 抽象工厂模式实战指南
开发语言·c++·抽象工厂模式
CoderMeijun5 小时前
C++ 智能指针:auto_ptr
c++·内存管理·智能指针·raii·auto_ptr
笑虾5 小时前
cocos2d-x lua 加载 Cocos Studio 导出的 csb
游戏引擎·lua·cocos2d
wuminyu5 小时前
专家视角看Lambda表达式的原理解析
java·linux·c语言·jvm·c++
魔士于安5 小时前
unity lowpoly 风格 城市 建筑 道路 交通标志
游戏·unity·游戏引擎·贴图·模型
^—app5668665 小时前
短剧游戏APP广告联盟SDK类型模块调用源代码
游戏
mxwin5 小时前
Unity GPU Shader 性能优化指南
unity·游戏引擎·shader
ximu_polaris5 小时前
设计模式(C++)-行为型模式-命令模式
c++·设计模式·命令模式