网络同步预测-Prediction
摘要:预测(Prediction) 是解决网络延迟问题、提升玩家操作流畅度的核心机制 客户端接收玩家输入玩家操作(如 WASD 移动、跳跃)被捕获为输入事件(FInputActionValue)。客户端本地预测执行客户端不等服务器响应,直接基于输入在本地模拟角色行为(如移动、动画播放),并立即更新画面。此
阅读全文
posted @
2025-09-15 22:28
偷懒的阿贤
阅读(21)
推荐(0)
如果远程玩家过早结束异步任务,并且具有该集的任务仍在运行,则该任务被杀死-SetWaitingOnRemotePlayerData()
摘要:SetWaitingOnRemotePlayerData主要用于控制游戏模式是否等待远程玩家(通常是网络多人游戏中的客户端)的数据加载完成。 调用时,可以直接杀死该使用数据的任务
阅读全文
posted @
2025-09-15 22:01
偷懒的阿贤
阅读(3)
推荐(0)
确定调用 TargetData是否已发送-CallReplicatedTargetDataDelegatesIfSet()
摘要:example: const bool bCalledDelegate = AbilitySystemComponent.Get()->CallReplicatedTargetDataDelegatesIfSet(SpecHandle, ActivationPredictionKey);if (!b
阅读全文
posted @
2025-09-15 21:57
偷懒的阿贤
阅读(5)
推荐(0)
用于在能力(Ability)成功获取目标数据(Target Data)后触发回调-AbilityTargetDataSetDelegate
摘要:主要作用当玩家或 AI 通过能力进行目标选择(例如点击地面、选择敌人等)并确认目标后,AbilityTargetDataSetDelegate 会被触发,将收集到的目标数据(FGameplayAbilityTargetDataHandle)传递给绑定的函数,以便能力执行具体的效果(如伤害、治疗、生成
阅读全文
posted @
2025-09-15 21:50
偷懒的阿贤
阅读(8)
推荐(0)
控制能力任务(Ability Task)是否应该广播其委托(Delegates)-ShouldBroadcastAbilityTaskDelegates ()
摘要:ShouldBroadcastAbilityTaskDelegates 是 UAbilityTask 类中的一个虚函数,主要用于控制能力任务(Ability Task)是否应该广播其委托(Delegates)。该函数的默认实现返回 true,表示能力任务会正常广播委托。在某些特殊情况下,你可能需要重
阅读全文
posted @
2025-09-15 21:40
偷懒的阿贤
阅读(3)
推荐(0)
将目标数据复制到服务器-ServerSetReplicatedTargetData()
摘要:ServerSetReplicatedTargetData 通常是一个自定义的服务器端 RPC(远程过程调用)函数,用于将目标数据(如瞄准目标、交互目标等)从客户端发送到服务器,并让服务器更新相应的复制变量,以便在多台客户端之间同步该数据。
阅读全文
posted @
2025-09-15 21:38
偷懒的阿贤
阅读(6)
推荐(0)
GAS中,负责封装技能所影响的目标数据(如 Actor、位置、碰撞结果等)-FGameplayAbilityTargetData
摘要:example://FGameplayAbilityTargetData_SingleTargetHit 继承自FGameplayAbilityTargetData FGameplayAbilityTargetData_SingleTargetHit 是用于表示单一目标命中信息的目标数据结构,常用于
阅读全文
posted @
2025-09-15 21:35
偷懒的阿贤
阅读(9)
推荐(0)
创建预测窗口-ScopedPredictionWindow();
摘要:ScopedPredictionWindow 是一个与网络预测(Network Prediction)相关的工具类,主要用于在多人游戏中管理预测窗口的生命周期,确保客户端预测和服务器验证的一致性。 网络预测上下文管理:在客户端预测期间,ScopedPredictionWindow 会创建一个临时的
阅读全文
posted @
2025-09-15 21:22
偷懒的阿贤
阅读(4)
推荐(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)
在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
偷懒的阿贤
阅读(6)
推荐(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)