- 博客(25)
- 收藏
- 关注
原创 GE Execution Calculations -Damage
Execution Calculations是Unreal Engine中Gameplay Effects系统的一部分,用于在Gameplay Effect执行期间进行自定义的计算和逻辑操作。它允许开发者根据特定的游戏需求,灵活地处理和修改游戏中的属性(Attributes)。功能强大且灵活:与ModifierMagnitudeCalculation类似,Execution Calculations可以捕获Attribute,并可选择性地为其创建Snapshot。
2025-02-06 02:07:24
865
原创 虚函数表机制
若基类的析构函数不是虚函数,通过基类指针删除派生类对象时,,导致派生类资源泄漏。因此,基类应定义虚析构函数。每个对象实例化时,编译器会在其内存开头插入一个。虚函数表是 C++ 实现。,指向所属类的虚函数表。
2025-01-30 03:33:21
930
原创 面向对象设计:SOLID 原则
SOLID 原则是面向对象设计的核心,帮助构建高内聚、低耦合的代码。C++ 实现关键点使用虚函数和纯虚接口实现多态。通过组合和依赖注入替代继承。注意内存管理(如智能指针实际开发建议:根据需求灵活权衡设计,避免过度工程化。
2025-01-30 02:00:11
433
原创 简单的对象池了解
这个模板类为你提供了一个简单而有效的对象池管理机制,可以用于管理动态材质实例或者其他类型的对象。对象池的使用能够有效优化内存分配,提高程序的性能,特别是对于大量重复使用的对象。
2025-01-25 22:25:12
126
原创 远程PC交互
远程PC(远程计算机)之间的交互可以通过多种方式实现,通常根据应用场景和需求选择不同的技术和协议。下面是几种常见的远程交互方式和它们的工作原理:RDP(Remote Desktop Protocol) 是一种常见的技术,可以让用户从远程PC控制另一台计算机的桌面,几乎像是在本地操作一样。工作原理:优点:缺点:SSH 是一种加密的远程终端访问协议,通常用于通过命令行界面远程访问和管理计算机。工作原理:优点:缺点:VPN 是一种将远程计算机与局域网(LAN)连接的技术,使得远程PC仿佛在同一个局域网内,可以访问
2025-01-25 05:03:58
803
原创 受击反馈HitReact、死亡效果Death Dissolve、Floating伤害值Text(末尾附 客户端RPC )
由于它一个角色对应一个单例,每次触发都是相同的实例,所以,我们需要在其播放完成后,将其结束,才可以重新触发,然后,在敌人的受击动画播放完成后,我们需要将敌人身上的受击标签清楚(如果GE添加的,只需要将对应的GE清除,标签也会随着清除)并结束技能。现在有个问题,就是我们是通过在AttributeSet里面通过元属性获取到当前的伤害的,它是在服务器上运行的,因此,我们要实现在AttributeSet里面去调用函数生成,并且,还需要获取到玩家控制器,因为你需要将数值显示给玩家查看得,所以,我们。
2025-01-25 03:20:53
1353
原创 使用元属性(Meta Attributes)和SetbyCaller修改伤害
通过使用元属性来进行伤害计算和属性修改,我们能够将复杂的计算逻辑从客户端转移到服务器端,减少了计算量并提高了游戏的整体效率。元属性不仅可以有效缓解服务器和客户端之间的计算负担,还可以确保游戏机制的准确性与一致性。
2025-01-25 00:22:06
526
原创 .gitignore 文件的使用
gitignore是一个非常重要的工具,用于排除不必要的文件,确保 Git 仓库仅包含源代码和必要的文件。使用合适的规则和模板,避免将临时文件、编译文件或本地配置文件提交到版本控制中。为不同的开发环境和工具选择适合的.gitignore配置,减少冲突和混乱。。
2025-01-24 00:10:54
1100
原创 导入与导出CurveTable CSV 和 JSON
5. 若是Blueprints中不存在CurveTable 需外导入CSV/JSON (点击图中的 '导入' 选择对应的文档..3.将其CSV存入Data文件后打开的样子Excel。1.创建空文件夹Data 在项目文件中用于储存CT。(其中JSON 保留了Cubic 三次切线 较CSV好一点)4.JSON 打开的样子 记事本。2.导出为 CSV /JSON。(警惕导入操作不可撤销)
2025-01-23 22:37:04
202
原创 UE5 GAS RPG Character Classes
在正常的游戏中,我们应该考虑如何去初始化角色属性,并且要给角色分好类型。比如,在我们游戏中,我们如何去初始化小兵的属性,并且还要实现小兵随着等级的增长而增加属性。首先,我们考虑将创建数据放在哪里,这里我们将其放到GameMode上面,对于GameMode来说,在不同场景可以设置不同的GameMode,刚好合适,比如你创建了一个关卡,可以设置上对应的数据,关卡内的敌人初始化时,就使用这一套GE去初始化。创建完成对应的GE,我们并使用数据表格填充了对应的数据,接下来,我们将通过代码实现对应的逻辑去初始化角色。
2025-01-23 22:03:19
297
原创 简单的委托传Data
在设置这个WidgetController之后会触发 (BlueprintImplementableEvent)WidgetControllerSet()第一步用Cast to去强制转换成目标UObject或它的BP蓝图类 用于索引到需要的委托广播event。接下来在使用这两个委托变量去广播Data之前先设置SetWidgetController。已知在OverlayWidgetController.h头文件中有自定义委托。在目标UObject 的头文件中包含该头文件并且定义两个委托变量。
2025-01-23 02:14:45
119
原创 Prediction in GAS
这段代码实现了一个类,该类负责处理鼠标位置相关的目标数据,并通过将数据同步到服务器。它还包括客户端预测和回滚机制,以减少延迟并保证客户端和服务器状态的一致性。客户端预测(Client Prediction)在中使用 FScopedPredictionWindow来进行客户端预测,允许客户端在数据未完全同步的情况下,提前执行某些操作,减少延迟。客户端提前预测了能力执行(如目标选择),并通过向服务器发送目标数据。本代码示例展示了如何在中使用实现客户端预测和回滚。通过。
2025-01-20 22:18:08
632
原创 UE5_GameplayAbility.h 源码解析
CallActivateAbility() - 做一些激活前的工作,然后调用ActivateAbility()CommitAbility() - 提交资源/冷却时间等 ActivateAbility()必须调用这个函数。ActivateAbility() - 激活GA事件回调 在GA激活后 可以实现自定义逻辑 在子类中覆盖。实例化 支持非实例化(本地)每个所有者实例化,每次执行均实例化(默认)EndAbility() - 这个函数是自身调用GA结束。输入绑定GA 激活 应用GA。
2025-01-20 18:54:36
218
原创 C++11 primer 2. Template
模板参数列表模板参数表示在类或函数中用到的类型或值。当使用模板时,(隐式或显示地)指定模板实参绑定到模板参数上。
2024-04-28 22:04:37
217
原创 C++11 primer 1. Interitance
面向对象程序设计(object-oriented programming)的核心思想是数据抽象继承动态绑定。基类通常需要定义一个 虚析构函数 用于对析构函数的动态绑定。被用作基类的类 必须是已经定义的若非仅仅声明… …(待补充?派生类必须使用基类的构造函数初始化它的基类部分,每个类必须初始化自己的成员。//构造函数其中的Quote(book , p) 注明派生类狗造函数想要使用基类的构造函数可以用 基类名(实参列表) 的形式提供初始值。首先初始化基类部分,然后按声明顺序初始化派生类成员。
2024-04-20 18:04:20
624
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人