博客导览
前言写了一篇博客导览,方便后续本人使用。
杂乱小面筋 :面筋
语言基础
C#: C# 高级语法 , 关于CLR模型-GC
C++: c++ 和c11 , C++ 之STL , 关于类与对象
lua: unity热更新Lua
408基础
计算机网络:计算机网络基础 , TCP与UDP
OS:OS
Unity相关
基础与理论:
unity基础:unity引擎基础
3d数学:unity 3d数学理论
UGUI基础:UGUI问答
热更新AB:Post not found: 0030-U3dAssetBundle
代码与框架:
设计模式:设计模式 , 游戏设计模式 , FSM ObjPool ,IOC容器-Springboot
UI手机适配:UI手机适配
红点系统:Unity红点系统
物理 :关于游戏物理实现
帧同步:帧同步和状态同步
性能优化:
UI性能优化:unity UI优化 ,UGUI 优化- DrawCall ,OverDraw ,源码角度分析Rebuild和Rebatch
图形学相关 ...
ue GAS(持续更新)
前言Deepseek介绍UE(Unreal Engine)中的 GAS(Gameplay Ability System)是一套非常强大且灵活的游戏玩法技能框架,尤其适合用来构建复杂的战斗系统、技能和状态管理。下面这个表格能让你快速把握其核心组件。
组件名称
核心功能简介
Ability System Component (ASC)
GAS的总协调中心,一个必须挂在Actor上的组件,负责管理所有GAS相关逻辑。
Gameplay Ability (GA)
定义一个完整的技能或能力(如攻击、跳跃、使用道具)的具体逻辑。
Gameplay Effect (GE)
代表一个效果或状态(如造成伤害、治疗、眩晕Buff),用于修改属性或添加/移除状态标签。
Attribute Set (AS)
定义和持有角色的数值属性(如生命值、魔法值、攻击力),并处理属性变化。
Gameplay Tag
一种层级标签系统,用于标记对象的状态、行为的分类,实现高效的逻辑判断和驱动。
💡 核心概念详解为了让你更好地理解和使用GAS,下面是对上述组件的进一步说明:
Ability ...
UE 适配与多分辨率
背景写系统过程中不同分辨率浮动处理是经常遇到的问题。
在不同分辨率过程中可能会存在适配问题,手游关联居多,手游之前在Unity开发时已经写过一篇相关文章(UI手机适配 )。
此篇为对于UE引擎下端游适配问题的处理,可包括不同分辨率,带鱼屏等。
2D空间坐标
窗口空间(window Space):程序运行时打开的窗口,此时的整个窗口坐标系(左上至右下)可以理解为Widget的窗口空间,如PIE模式下编辑器的视口,或者正式发布版本的游戏窗口。
屏幕空间(Monitor Space):显示输出设备的整个屏幕大小(左上至右下),如PC的显示器或者手机的屏幕输出。
APIGetLocalSize() 相对大小,一般是由在编辑器内设置的大小决定(TileView组件的Item的大小会受TileView的Entry变量设置的大小影响)。
GetAbsoluteSize() 实际大小,包含对自适应各种分辨率情况下的DPI的设定。
LocalToViewport() 坐标转换,两个引用参数ViewportPosition(相对于父PanelWidget的位置) 和 PixelPositio ...
ue Slate初探
背景在开发上层UMG过程中,有时候会遇到需要更底层的支持,以此为契机,研究Slate使用与底层注意事项。
基本使用Slate是UE中提供的UI框架,它的核心理念如下:
Slate 架构|虚幻引擎5.2文档
关于UI的一些基础概念,可以了解:
现代图形引擎入门指南(七)— GUI
在UE中,使用Slate,需要了解三个核心结构:
FSlateApplication :全局单例,所有UI的调度中心。
SWindow :顶层窗口,持有跨平台窗口的实例(FGenericWindow),提供窗口相关的配置和操作。
SWidget :小部件,划分窗口区域,处理自身区域内的交互和绘制事件。
在UE中,一个简单的Slate使用示例如下:
123456789101112131415161718auto Window = SNew(SWindow) //创建窗口 .ClientSize(FVector2D(600, 600)) //设置窗口大小 [ ...
ue Als 使用(占坑)
前言先占坑 后续补上 ALS 使用基础
UE 动画系统框架介绍及使用 - 知乎
UE4 UE5 骨骼动画 高级运动系统 (ALSV4) - 知乎
ue 多线程
背景本篇为UE多线程的使用与底层代码实现的问题。多线程是优化项目性能的重要方式之一。
在系统组工作过程中,听到最多的是优化是对于Flush的禁止工作。防止Loading资源的时候占用资源,这是一个庞大且精细的过程,在顶层编码的时候也需要去注意某些Sync操作是否会引发Flush。Flush这种同步加载的堵塞操作,需要去分析Flush的操作处理。故有此篇作为基础篇,里面涉及到部分的os的基础概念的实现,后续可以去复习一下os的pv操作部分。
本章梳理一下对UE多线程的顶层调用处理。
2025.11.06 关于FQueuedThreadPool 和TaskGraph 后续再研究,埋个坑。
引擎的线程在创建自己的多线程之前,需要先了解UE本身已经运行在多个线程上了,最主要的是:
游戏线程(Game Thread):
这是最主要的线程,大部分的蓝图和C++游戏逻辑都在这里执行。
负责处理玩家输入、Actor的Tick、蓝图逻辑、物理模拟的触发(但计算本身不在主线程)、游戏状态更新等。 当这个线程的任务太重,游戏就会卡顿,帧率(FPS)下降。
渲染线程(Render Thread) ...
ue 增强输入
前言UE5 使用了一个最新的输入架构EnhancedInput(增强输入系统)
简介
增强输入框架就是改进一些过往问题的新答案。它以模块化的方式解耦了从输入的按键配置到事件处理的逻辑处理过程,通过提供输入动作(UInputAction)、输入修改器(UInputModifier)、输入触发器(UInputTrigger)和输入映射环境(UInputMappingContext)这些可组合功能,在新的增强玩家输入(UEnhancedPlayerInput)和增强输入组件( UEnhancedInputComponent)的配合下提供了更灵活和更便利的输入配置和处理功能。考虑到基于 虚幻引擎5(UE5)的项目可能需要更多高级输入功能,例如复杂的输入处理、运行时重新映射输入,我们开发了增强输入插件(Enhanced Input Plugin),以便开发者拥抱次世代项目,同时又能向后兼容 虚幻引擎4(UE4)中的默认输入系统。
目标:
重新梳理简化: Axis/Action —> Action(统一)
运行时重新映射输入场景: UInputMappingContext
对初级用户 ...
ue gc
前言本篇以源码角度解析UE中标记清除算法GC的实现
https://zhuanlan.zhihu.com/p/401956734
UE 4.26
垃圾回收伪实现标记清除算法 、 复制算法 、标记-整理算法 、分代收集算法等。我们就用标记清除算法来实现。标记-清除算法,看名字就知道有两个阶段,标记和清除:
标记:遍历所有对象,根据某种规则,标记其是否需要清除
清除:遍历所有对象,清除标记了的对象,回收内存
因此可知,要实现标记清除垃圾回收,在标记阶段我们需要做到以下两点:
能拿到所有对象
确定对象清除的规则
在自定义的 NewObject 方法内,把生成的对象指针放入全局数组 GUObjectArray ,这样我就能拿到所有对象了
以下就是垃圾回收的伪实现:
启动垃圾回收,加锁( 保持所有对象的引用关系不变 )
设置所有对象为”不可达”标记(根对象、特殊对象 除外)
遍历根对象列表,根对象引用到的对象去除”不可达”标记
收集所有仍然标记为”不可达”的对象,全部删除
GC过程GC 启动
手动:UWorld::ForceGarbageCollection( bool bFullP ...
工具下载与使用备忘
前言本篇为工作过程中对于 工具下载与使用备忘记录。
Beyond Compare 5
使用
对比常用软件
官网
BC5官网:https://www.scootersoftware.com/
无限试用期
参考链接:https://zhuanlan.zhihu.com/p/401663968
修改文件[BCUnrar.dll] ,这个文件重命名或者直接删除。
将以下操作保存为bat文件,然后双击运行即可
绿色版与其他工具
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=441367&extra=
Vscode插件记录。
Rideride 占用内存过高解决
https://blog.csdn.net/m0_37735713/article/details/106380607
VS平时编译使用VS
Othergeek.exe
Typora
Everything
UnrealGameSync
Horde
腾讯会议
网易有道翻译
腾讯元宝
WPS Office
飞书
NodePad–看log 查询作用
https ...
ue 编译相关
前言https://zhuanlan.zhihu.com/p/1911596641955328123
编译类型很多人在使用UE4的时候,往往只是依照默认的DevelopmentEditor,但实际上编译选项是非常重要的。 UE4本身包含网络模式和编辑器,这意味着你的工程在部署的时候将包含Server和Client,而在开发的时候,也将有Editor和Stand-alone之分;同时你也可以单独选择是否为Engine和Game生成调试信息,接着你还可以选择是否在游戏里内嵌控制台等。
所以为了我们的调试代码方便,我们选择DebugEditor来加载游戏项目,当需要最简化流程的时候用Debug来运行独立版本。
分为本地编译和UGS编译
UGS官方文档:
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/unreal-game-sync-ugs-for-unreal-engine
UHT相关UHT反射位置
GR> GR Trunk 3> S1Game > Intermediate> Build& ...

