Ability->GetCurrentActorInfo()->IsLocallyControlled()和APawn::IsLocallyControlled()
摘要:APawn::IsLocallyControlled()可以看作是对GetCurrentActorInfo()->IsLocallyControlled()的封装。 Ability->GetCurrentActorInfo()->IsLocallyControlled() 是指的FGameplayA
阅读全文
posted @
2025-09-15 21:16
偷懒的阿贤
阅读(3)
推荐(0)
AbilitySystemComponent和AbilityTask
摘要:AbilityTask 是 Gameplay Ability System(GAS)框架的核心组件之一,用于处理能力(Ability)执行过程中的异步操作。它允许开发者在能力激活后创建可中断、可暂停的任务,处理如动画播放、特效生成、输入响应等耗时或需要等待的操作。 example:比如下方的两个不同
阅读全文
posted @
2025-09-15 21:10
偷懒的阿贤
阅读(12)
推荐(0)
SpawnActorDeferred()和SpawnActorOfClass()
摘要:SpawnActorDeferred和SpawnActorOfClass都是用于生成 Actor 的函数,但它们的使用场景和行为有显著区别:生成时机与初始化控制:SpawnActorOfClass:是一个 "一站式" 函数,调用后会立即完成 Actor 的生成、初始化并激活。所有构造函数、Begin
阅读全文
posted @
2025-09-15 21:00
偷懒的阿贤
阅读(14)
推荐(0)
GAS中GA变量数据的同步
摘要:UAbilitySystemGlobals 是 Ability System 框架的核心全局类,负责管理能力系统的初始化、配置和全局状态。它提供了许多关键功能,是整个能力系统正常运行的基础。 UAbilitySystemGlobals::Get().InitGlobalData();//初始化需要用
阅读全文
posted @
2025-09-15 16:46
偷懒的阿贤
阅读(4)
推荐(0)
在GAS中创建异步任务-AsyncTask
摘要:example: UCLASS()class AURA_API UTargetDataUnderMouse : public UAbilityTask{ GENERATED_BODY()public: UFUNCTION(BlueprintCallable, Category = "Ability|
阅读全文
posted @
2025-09-15 16:27
偷懒的阿贤
阅读(5)
推荐(0)
BlueprintAssignable
摘要:是一个用于委托(Delegate)声明的说明符(Specifier),其核心作用是允许在蓝图中绑定函数到该委托上,实现蓝图与 C++ 之间的事件交互。 BlueprintAssignable 的作用是: 当在 C++ 中声明一个委托时,用 BlueprintAssignable 标记后,这个委托会暴
阅读全文
posted @
2025-09-15 16:09
偷懒的阿贤
阅读(11)
推荐(0)
UE RPC介绍
摘要:在 Unreal Engine 5 中,RPC(Remote Procedure Call,远程过程调用) 是网络多人游戏开发的核心机制,用于在客户端与服务器之间跨网络调用函数,解决 “不同设备上的代码如何同步执行” 的问题。 一、核心作用 在多人游戏中,客户端(玩家设备)和服务器(权威节点)是独立
阅读全文
posted @
2025-09-13 11:59
偷懒的阿贤
阅读(61)
推荐(0)
AI导航生成寻路点-FindPathToLocationSynchronously
摘要:FindPathToLocationSynchronously() example: FHitResult Hit;if (GetHitResultUnderCursor(ECC_PhysicsBody, false, Hit)){ CacheDestination = Hit.ImpactPoin
阅读全文
posted @
2025-09-12 17:31
偷懒的阿贤
阅读(12)
推荐(0)
在GA中添加Tag-GetDynamicSpecSourceTags().AddTag(NewTag)
摘要:GetDynamicSpecSourceTags().AddTagexample: FGameplayAbilitySpec AbilitySpec = FGameplayAbilitySpec(AbilityClass,1); AbilitySpec.GetDynamicSpecSourceTag
阅读全文
posted @
2025-09-12 15:30
偷懒的阿贤
阅读(9)
推荐(0)
启动GA-Event Activated,结束GA-End Ability
摘要:在GA中 Event Activated是激活时的行为 在激活结尾时调用End Ability Event OnEndAbility是GA结束时的行为
阅读全文
posted @
2025-09-11 17:02
偷懒的阿贤
阅读(5)
推荐(0)
在使用代理的时候,可以使用更简单的C++语法代替FGameplayAttribute代理,使用TStaticFuncPtr <T>
摘要:DECLARE_DELEGATE_REVAL(FGameplayAttribute, FAttributeSignature); 比如这里的代理 定义为FAttributeSignature AttributeSignature ; 但是可以不生命代理,直接声明 TBaseStaticDelegat
阅读全文
posted @
2025-09-11 16:38
偷懒的阿贤
阅读(4)
推荐(0)
给GE添加自定义算法-继承GameplayModMagnitudeCalculation
摘要:继承该类 virtual float CalculateBaseMagnitude_Implementation(const FGameplayEffectSpec& Spec) const override;example: float UMMC_MaxHealth::CalculateBaseM
阅读全文
posted @
2025-09-03 22:47
偷懒的阿贤
阅读(7)
推荐(0)
用c++创建GameplayTags-UGameplayTagsManager::Get().AddNativeGameplayTag
摘要:UGameplayTagsManager::Get().AddNativeGameplayTag example: FGameplayTag Attributes_Primary_Strength; Attributes_Primary_Strength = UGameplayTagsManager
阅读全文
posted @
2025-09-03 22:38
偷懒的阿贤
阅读(3)
推荐(0)
使用资产管理类管理GameplayTags的初始化-Asset Manager
摘要:virtual void StartInitialLoading() override;example: UCLASS()class AURA_API UAuraAssetManager : public UAssetManager{ GENERATED_BODY()public: static U
阅读全文
posted @
2025-09-03 22:37
偷懒的阿贤
阅读(5)
推荐(0)
增加新的GameplayTags-UGameplayTagsManager::Get().AddNativeGameplayTag
摘要:UGameplayTagsManager::Get().AddNativeGameplayTagexample: UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Attributes.Secondary.Armor"),FString(
阅读全文
posted @
2025-09-02 21:46
偷懒的阿贤
阅读(5)
推荐(0)
关于GE中的-AttributeBased Modifiers
摘要:每个Modifier的算法是依次计算每个Modifier的运算修饰符,再将所有的Modifier进行它们之间的运算(运算只按照从上到下的顺序)
阅读全文
posted @
2025-08-27 17:50
偷懒的阿贤
阅读(2)
推荐(0)
使用GameplayEffect初始化属性值-ApplyGameplayEffectSpecToTarget
摘要:example: UPROPERTY(BlueprintReadOnly,EditAnywhere,Category = "Attributes")TSubclassOf<UGameplayEffect> DefaultPrimaryAttributes; void InitializePrimar
阅读全文
posted @
2025-08-27 15:24
偷懒的阿贤
阅读(7)
推荐(0)
在属性变化时-PreAttributeChange
摘要:virtual void PreAttributeChange(const FGameplayAttribute& Attribute, float& NewValue) override;exmple: void UAuraAttributeSet::PreAttributeChange(cons
阅读全文
posted @
2025-08-27 14:28
偷懒的阿贤
阅读(11)
推荐(0)