自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 ALS-Refactored-2.2-解释平台旋转

摘要: bMovementBaseHasRelativeRotation是虚幻引擎中控制角色旋转是否受移动平台驱动的关键参数。当为false(如电梯),角色仅跟随平台移动而旋转自由;当为true(如转盘),角色的旋转会随平台同步变化。相机代码通过该参数解决“被动旋转”导致的镜头延迟问题:在平台旋转时立即同步相机朝向,避免角色瞬间转向而镜头滞后,确保被动旋转时镜头与角色严格同步,而主动操作(如鼠标移动)仍保持平滑过渡。

2025-11-12 09:44:31 335

原创 ALS-Refactored-2.1-深入摄像机

本文分析了ALS摄像机系统的核心组件UAlsCameraComponent和UAlsCameraAnimationInstance的设计思路。UAlsCameraAnimationInstance作为动画实例,主要负责同步角色状态数据供动画蓝图使用。UAlsCameraComponent继承自USkeletalMeshComponent而非UCameraComponent,使其能够利用动画蓝图作为可视化编辑器。该系统通过重写CalcCamera方法来更新摄像机位置、旋转和视野等关键参数,最终构建出一个灵活的

2025-11-12 09:44:20 972

原创 ALS-Refactored-1.1-拆解案例控制器和摄像机动画蓝图

本文分析了ALS插件中PlayerController和Camera动画蓝图的关键功能。PlayerController处理输入事件,通过Q键激活状态切换栏,使用GameplayTag管理角色OverlayMode状态。Camera动画蓝图基于RotationModeTag实现三种摄像模式转换,通过GaitTag和StanceTag调整动画曲线值来控制摄像机位置和移动速度。文章着重展示了通过修改CameraOffsetX等参数实现摄像机距离调整的方法,并指出GameplayTag系统的扩展优势。最后提到未来

2025-11-12 09:44:01 719

原创 ALS-Refactored-1.0-添加项目

本文介绍了如何将ALS-Refactored插件添加到项目中,并解析了其角色蓝图的实现逻辑。主要包括:1)将插件文件夹复制到项目Plugin目录下完成安装;2)角色蓝图实现了选择攀爬动画和切换物品两大功能;3)使用Tag(而非枚举)来管理OverlayMode,便于C++中拓展修改;4)切换物品时通过Tag值更新关联动画层和物品显示。相比传统ALS使用枚举的方式,Tag机制更灵活,只需添加新Tag并设置对应动画和物品即可实现功能扩展。

2025-11-12 08:30:00 444

原创 ALS-Refactored_导论

《ALS-Refactored插件解析与使用指南》是一篇对虚幻引擎ALS动画系统重构项目的技术分析。文章从项目背景入手,指出原ALS项目在扩展性、可读性和网络同步方面的不足,并介绍了基于Lyra项目改进的新方案。主要内容包括插件使用方法、摄像机系统实现原理和角色动画系统的技术细节,重点分析了基于GameplayTag的状态管理和关联动画层设计。作者Dami表示将通过系列文章逐步解析这个复杂项目,先概述整体架构,后续深入各部分实现。文章配有系统流程图解,适合想要学习高级动画系统开发的UE技术人员参考。

2025-11-05 08:30:00 807

原创 C# 搭建网络同步框架(四)——应用层开发

本文介绍了基于Protobuf实现客户端-服务端登录协议的具体开发流程。首先设计LoginRequest和LoginResponse消息结构,然后通过Envelope信封协议实现报文类型标识。文章详细说明了MessageManager如何管理消息收发,包括接收时的反序列化和类型分发,以及发送时的序列化和封装。最后展示了服务端和客户端处理登录请求/响应的代码框架,包括密码验证和登录结果处理。整个过程实现了网络层的核心通信功能,为后续业务开发奠定了基础。

2025-10-25 11:52:41 818 1

原创 C# 搭建网络同步框架(三)——Protobuf的使用

Protobuf是一种由Google开发的高效数据序列化协议,具有体积小、解析快、跨语言等特点。它通过.proto文件定义数据结构,并使用protoc编译器生成各语言代码。相比JSON/XML,Protobuf二进制格式更节省空间,支持强类型和版本兼容性。开发环境需安装protoc编译器和编辑器插件(如VSCode的vscode-proto3)。.proto文件语法类似编程语言,包含消息类型定义和字段编号。支持常见数据类型(int32/string等)和repeat数组。编译后生成对应语言的类文件,简化开发

2025-10-22 08:30:00 1036

原创 C# 搭建网络同步框架(二)——可靠Udp传输

这次我们通过序列号机制完成了可靠的 Udp 传输,从这里开始已经可以慢慢向实际的应用场景看齐了,下节课要干什么我也不太清楚,毕竟是边学边写的博客。文章里的项目已经上传到GitHub中了,有兴趣的可以去看看,捧个场。

2025-09-17 16:24:13 982

转载 Astar算法详解与应用

A*算法是一种高效路径搜索算法,结合了Dijkstra算法和贪心策略,通过评估函数f(n)=g(n)+h(n)寻找最优路径。其中g(n)为起点到当前点的实际距离,h(n)为启发式估计距离(常用曼哈顿/欧几里得等度量方法)。算法使用优先队列优化搜索过程,相比广度优先搜索显著减少计算量。文章详细解释了不同距离估计算法的适用场景,并通过示例说明启发函数需满足h(n)≤实际最优路径的条件才能保证结果最优性。最后提供了可视化演示代码,直观展示算法运行过程。

2025-09-07 08:30:00 270

原创 C# 搭建网络同步框架(一)——基本的消息收发

这篇文章介绍了一个基于UDP协议实现的简单网络同步框架的开发过程。作者首先分析了TCP和UDP协议的特点,选择了更适合实时应用的UDP协议,并利用C#的UdpClient类进行开发。文章详细描述了服务端和客户端的实现方案:服务端通过死循环保持监听状态,根据接收到的消息类型回复不同内容;客户端则负责向指定服务端发送消息并接收回应。作者提供了完整的代码实现,包括消息的编码解码、异常处理等关键环节。这个简易框架为后续开发更复杂的网络同步机制奠定了基础,同时也帮助开发者更好地理解底层网络通信原理。

2025-09-04 08:30:00 1019

原创 URotationMovement 组件的概述及应用

摘要 本文介绍了虚幻引擎5中URotationMovementComponent组件的使用,用于创建旋转的可拾取物品。该组件相比传统旋转方法更便捷高效,能够设置旋转速率和中心点平移。文章详细展示了创建基类PickableActor_Base的过程,包括添加碰撞、网格和旋转组件,并演示了如何继承该基类创建具有金币价值的PickableActor_Collectable。通过这种实现方式,可以轻松创建游戏中的旋转可拾取物,增强玩家注意力,并支持扩展应用于关卡设计等多个领域。

2025-09-01 08:30:00 893

原创 Unity中的射线检测

射线检测技术概述 射线检测(Raycasting)是游戏开发中常用的碰撞检测技术,通过发射虚拟射线判断与场景中碰撞体的相交情况。其核心应用包括: 玩家交互:实现鼠标拾取物体、悬浮提示等功能,连接2D输入与3D场景 游戏机制:处理角色移动贴地、跳跃检测等基础逻辑 AI行为:实现敌人视野检测、攻击范围判断等智能决策 典型实现方式是通过Physics.Raycast()方法检测射线与碰撞体的相交,可配合层掩码(LayerMask)过滤检测对象。这种技术具有高效灵活的特点,是游戏开发中环境感知和物理交互的基础手段。

2025-08-24 08:30:00 2416

原创 塔防游戏开发小记——防御塔结构设计

本文探讨了塔防游戏中防御塔设计从传统继承到组件化架构的演进过程。最初采用继承设计虽然结构清晰但扩展性差,难以应对复杂功能需求。随后转向组合设计,将功能拆分为独立组件,提高复用性和灵活性,但存在管理复杂度。最终引入ScriptableObject实现攻击方式的灵活配置,通过数据驱动降低代码耦合。三种方案各有优劣:继承适合简单层级关系,组件化提升可扩展性,ScriptableObject则优化动态配置能力。该演进过程反映了游戏开发中架构设计需平衡可维护性与功能需求,组件化与数据驱动是解决复杂游戏系统的有效路径。

2025-08-15 08:30:00 1911

原创 UE 基于 GAS 的类 ACT 韧性系统

本文提出了一种基于UE GAS框架的ACT游戏韧性系统实现方案。该系统通过三个阶段(正常状态、破韧状态、破韧延时状态)实现与魂类游戏不同的韧性机制,强调玩家连击体验。核心实现包括:1) 定义韧性属性并处理攻击减韧逻辑;2) 通过GameplayEffect和Tag系统标记受击状态;3) 创建专用GameplayAbility处理破韧到恢复的全流程。该方案解决了ACT游戏中玩家连招与敌人韧性恢复的协同问题,确保连招结束后敌人才恢复韧性,提升了战斗交互性和流畅性。

2025-08-10 08:30:00 1864

原创 Unity UI管理方案 UIManager

本文介绍了Unity中UIManager的设计与实现,主要功能包括: 核心功能:提供统一的UI打开(Open)和关闭(Close)接口,避免UI间的直接耦合 懒加载机制:动态创建UI预制体,支持场景中已有UI的自注册(RegisterUI) 层级管理:通过SceneUIRoot实现UI分层显示(Upper/Middle/Lower) 跨场景处理:通过IsPersistent标记常驻UI,自动设置DontDestroyOnLoad 类型安全:使用UIType枚举替代字符串标识UI类型 注意事项: 适用于单例U

2025-08-08 08:30:00 398

转载 Unity 对象池 | Object Pooling详细代码及使用

对象池是一种优化性能的设计模式,通过预创建并复用对象来减少内存分配开销。传统方法使用Instantiate/Destroy会频繁触发垃圾回收,而对象池通过SetActive(true/false)管理对象生命周期。适用于子弹、粒子效果等高频生成对象。 实现方式包括: 基础列表对象池:遍历查找可用对象,简单但效率低 优化列表对象池:记录最后使用索引提升性能 栈对象池(推荐):使用Stack存储闲置对象,Pop/Push操作均为O(1)效率最高 关键优势是减少内存分配/释放,特别适合需要大量重复创建销毁对象的场

2025-08-03 08:00:00 216

Unity 对象池 - 初始效果展示

Unity 对象池 - 初始效果展示

2025-08-01

Unity 对象池 - 物理效果展示

Unity 对象池 - 物理效果展示

2025-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除