虚幻引擎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());
}
相关推荐
ujainu21 小时前
Flutter + OpenHarmony 游戏开发进阶:用户输入响应——GestureDetector 实现点击发射
flutter·游戏·openharmony
ujainu21 小时前
Flutter + OpenHarmony 实现无限跑酷游戏开发实战—— 对象池化、性能优化与流畅控制
flutter·游戏·性能优化·openharmony·endless runner
小李也疯狂1 天前
Unity 中的立方体贴图(Cubemaps)
unity·游戏引擎·贴图·cubemap
呆呆敲代码的小Y1 天前
【Unity工具篇】| 超实用工具LuBan,快速上手使用
游戏·unity·游戏引擎·unity插件·luban·免费游戏·游戏配置表
EQ-雪梨蛋花汤1 天前
【Unity优化】Unity多场景加载优化与资源释放完整指南:解决Additive加载卡顿、预热、卸载与内存释放问题
unity·游戏引擎
rainbow68891 天前
EffectiveC++入门:四大习惯提升代码质量
c++
秋邱1 天前
用 Python 写出 C++ 的性能?用CANN中PyPTO 算子开发硬核上手指南
开发语言·c++·python
我的offer在哪里1 天前
用 Unity 从 0 做一个「可以玩的」游戏,需要哪些步骤和流程
游戏·unity·游戏引擎
我在人间贩卖青春1 天前
C++之析构函数
c++·析构函数
串流游戏联盟1 天前
启程!手机也能邂逅暖暖万相奇观
游戏·远程工作