<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[学无止境的专栏]]></title><description><![CDATA[更多内容，请访问 http://dingxiaowei.cn]]></description><link>https://blog.youkuaiyun.com/s10141303</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; s10141303]]></copyright><item><title><![CDATA[GPU ECS AnimationBaker 烘焙动画方案原理]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/163713524</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/163713524</guid><author>s10141303</author><pubDate>Thu, 13 Aug 2026 07:25:50 +0800</pubDate><description><![CDATA[将传统的骨骼动画离线烘焙CPU：只计算当前该查纹理的哪一行、帧间插值多少、多路动画如何混合（约 64 字节/角色/帧）GPU：查纹理拿骨骼矩阵，在 Vertex Shader 里完成顶点蒙皮。]]></description><category></category></item><item><title><![CDATA[荒野乱斗风格「技能预警」实现原理]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/163482000</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/163482000</guid><author>s10141303</author><pubDate>Tue, 04 Aug 2026 21:39:32 +0800</pubDate><description><![CDATA[本文介绍了《荒野乱斗》风格技能预警系统的Unity实现原理，主要包含以下核心内容： 功能概述： 通过拖动摇杆显示抛物线轨迹和落点圈 松手后在落点释放范围伤害技能 碰撞检测确保轨迹在墙面处截断 系统架构： 输入层（IJoystick处理触摸输入） 控制层（SkillJoystickController协调各模块） 计算层（TrajectoryCalculator处理抛物线数学） 执行层（VolleySkillHelper生成技能） 关键技术点： 摇杆力度与射程的映射关系 拱形抛物线计算公式（arcHeight]]></description><category></category></item><item><title><![CDATA[Unity车机地图Tile流式渲染系统高性能架构方案]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/163259670</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/163259670</guid><author>s10141303</author><pubDate>Tue, 28 Jul 2026 07:21:03 +0800</pubDate><description><![CDATA[摘要 本文提出了一种基于Unity DOTS/ECS架构的车机地图Tile流式渲染系统高性能解决方案。该方案采用五层架构设计：网络数据流层、数据解析工厂层、内存池与对象复用层、ECS业务逻辑层和渲染合批展示层。核心创新点包括：1) 完全异步Job化的数据处理流程，实现主线程零卡顿；2) 三层内存池体系确保零内存泄漏；3) 九宫格Tile视野管理与LRU缓存机制；4) 边界顶点数据缝合与多级LOD支持。系统通过Burst编译优化、Native内存管理、静态合批渲染等技术，在中低端车机硬件上实现了稳定满帧运行，]]></description><category></category></item><item><title><![CDATA[HUD 名字板批量渲染教程（GPU Instancing 方案）]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/163195695</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/163195695</guid><author>s10141303</author><pubDate>Sat, 25 Jul 2026 16:59:11 +0800</pubDate><description><![CDATA[摘要：GPU Instancing 批量渲染 HUD 名字板方案 本教程介绍了一种高性能的 HUD 名字板渲染方案，使用 GPU Instancing 技术批量渲染所有角色名字，大幅降低 DrawCall 数量。相比传统 GameObject 方案（每个名字一个 UI 对象），该方案将名字拆解为字符 Quad，通过 ComputeBuffer 传递实例数据，使用自定义 Shader 实现 Billboard 效果和字体贴图采样。核心优势包括：1）1000 个名字只需 1-2 次 DrawCall；2）完全规]]></description><category></category></item><item><title><![CDATA[Unity 几种常见合批手段的要求]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/163096954</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/163096954</guid><author>s10141303</author><pubDate>Wed, 22 Jul 2026 09:28:50 +0800</pubDate><description><![CDATA[合批（Batching）是 Unity 渲染优化的核心手段，目的是将多个绘制调用（Draw Call）合并为一个，减少 CPU 与 GPU 之间的通信开销。动态合批（Dynamic Batching）静态合批（Static Batching）每种合批方式都有严格的前提要求和互斥关系，理解这些是正确使用它们的前提。]]></description><category></category></item><item><title><![CDATA[MMORPG 大规模战斗场景海量特效优化]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/163022058</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/163022058</guid><author>s10141303</author><pubDate>Sun, 19 Jul 2026 17:18:24 +0800</pubDate><description><![CDATA[MMORPG 大量特效降 DC 的核心是材质归一、图集合并、规范粒子结构、全开 SRP Batcher / 动态合批 / GPU Instancing，同时剔除多余光照阴影并控制 Overdraw，把数百个 DC 压到个位数。]]></description><category></category></item><item><title><![CDATA[Unity AssetBundle堆内存优化方案]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/163021047</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/163021047</guid><author>s10141303</author><pubDate>Sun, 19 Jul 2026 15:53:41 +0800</pubDate><description><![CDATA[本文提出了一种Unity AssetBundle堆内存优化方案，通过数字化ID替代字符串路径来降低托管内存消耗。核心思路包括：1)建立持久化ID注册表(IdRegistry)，为资源和Bundle分配稳定uint32 ID；2)打包时使用addressableNames将加载名设为ID字符串；3)运行时通过数字ID进行资源加载。该方案可减少字符串常驻内存，保持ID跨版本稳定，简化API调用，并实现Bundle文件数字化命名。需注意与旧版本不兼容，上线需全量重打AB并清理缓存。方案在商业化项目中可有效降低热路]]></description><category></category></item><item><title><![CDATA[RPG游戏技能预警实现原理教程]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/163000054</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/163000054</guid><author>s10141303</author><pubDate>Sat, 18 Jul 2026 18:51:27 +0800</pubDate><description><![CDATA[这篇文章介绍了RPG游戏中技能预警效果的实现方法，提出了一种基于地面Shader贴花的优化方案。相比传统特效Mesh方式容易出现的穿模、悬空和高性能开销问题，该方法通过ComputeBuffer将技能中心坐标传递给地面Shader，在片元着色器中直接计算像素与技能中心的水平距离，动态绘制预警圆环。这种方案天然适配起伏地形，无需额外Mesh，支持多技能同时预警且性能更优。 文章详细解析了实现原理：CPU端通过ComputeBuffer传递技能坐标数据，GPU端在地面Shader中读取StructuredBuf]]></description><category></category></item><item><title><![CDATA[射击类游戏武器系统架构设计方案]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162954684</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162954684</guid><author>s10141303</author><pubDate>Fri, 17 Jul 2026 07:55:58 +0800</pubDate><description><![CDATA[文章摘要 本文提出了一套射击类游戏的模块化武器系统架构设计方案。系统采用四层分层结构（管理层、实现层、抽象层、数据层），通过ScriptableObject实现数据驱动，使策划可灵活配置武器参数而无需修改代码。核心设计包括：1)武器类型和射击模式的枚举定义；2)模块化的弹药、特效、后座力等数据结构；3)基于抽象类的武器行为模板；4)支持预热曲线、追踪弹道等特殊机制。该架构具有高扩展性（新增武器只需添加子类）、高性能（零GC对象池）和手感可调（参数化后座力系统）等特点，适用于机甲/角色类射击游戏开发。]]></description><category></category></item><item><title><![CDATA[RPG游戏角色Buff架构设计教程]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162954285</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162954285</guid><author>s10141303</author><pubDate>Fri, 17 Jul 2026 07:26:00 +0800</pubDate><description><![CDATA[这篇教程介绍了RPG游戏中Buff系统的分层架构设计，主要包含以下内容： 四层架构设计： 管理层(BuffComponent)：负责管理Buff的添加/更新/移除 逻辑层(BaseBuff基类)：定义Buff通用生命周期 效果层(具体Buff实现)：实现各种Buff效果 配置层(ScriptableObject)：策划可配置数据 工作流程：从技能释放到Buff添加和管理的完整过程 核心代码实现： 定义了BuffType枚举，包含眩晕、沉默、灼烧等15种状态效果 冲突处理机制(Cover/Stack/Reje]]></description><category></category></item><item><title><![CDATA[Unity AssetBundle商业化项目资源方案]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162941929</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162941929</guid><author>s10141303</author><pubDate>Thu, 16 Jul 2026 18:05:27 +0800</pubDate><description><![CDATA[Unity AssetBundle商业化解决方案摘要 本文介绍了一套完整的Unity AssetBundle商业化解决方案，包含编辑器打包管线和运行时加载系统两大模块。方案针对Unity原生AB系统的痛点进行了优化： 编辑器层： 通过ScriptableObject配置资源分组规则 实现了依赖优化、VFS打包(支持多包模式)和版本清单生成 采用任务管线架构(BuildTask)实现灵活扩展 运行时层： 五阶段版本更新流程(VersionsRequest) 支持分块并行下载(ChunkedDownloadRe]]></description><category></category></item><item><title><![CDATA[搞Unity 性能必须要知道的Gfx.WaitFor 点位常识]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162929588</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162929588</guid><author>s10141303</author><pubDate>Thu, 16 Jul 2026 11:14:48 +0800</pubDate><description><![CDATA[文章摘要（149字） Unity性能分析中常见的"WaitFor"标记揭示了CPU与GPU的协作瓶颈。Gfx.WaitForPresent高表示GPU瓶颈（渲染过重），WaitForCommands高则反映CPU主线程过载。WaitForGfxThread需特殊判断：数值高可能是渲染线程阻塞，数值低+WaitForPresent高则确认GPU瓶颈。关键区分原则：主线程等待GPU属于GPU瓶颈，渲染线程等待主线程属于CPU瓶颈。掌握这些标记的关联关系，能快速定位性能问题的根源环节。]]></description><category></category></item><item><title><![CDATA[Unity 高效渲染方案：GPU Instancing 教程]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162921060</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162921060</guid><author>s10141303</author><pubDate>Thu, 16 Jul 2026 08:42:03 +0800</pubDate><description><![CDATA[GPU Instancing 是 Unity 提供的一种批量渲染技术，允许同一网格 + 同一材质的多个物体合并为一个 DrawCall提交给 GPU。普通模式：1000 个同模型物体 → 1000 个 DrawCallInstancing 模式：1000 个同模型物体 →1 个 DrawCall需要渲染大量相同模型？├── 无需动画 ─→ 标准 GPU Instancing ✅│ 1. 加 【🔥】#pragma multi_compile_instancing│ 2. 【🔥】实例缓冲区声明差异属性。]]></description><category></category></item><item><title><![CDATA[Unity高效的DOTS动画方案Rukhanka深度剖析]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162911549</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162911549</guid><author>s10141303</author><pubDate>Wed, 15 Jul 2026 18:42:39 +0800</pubDate><description><![CDATA[Rukhanka技术解析：一个高效GPU蒙皮动画方案 本文深入剖析了Rukhanka的核心实现原理。与常见误解不同，Rukhanka并非将SkinnedMeshRenderer转换为MeshRenderer，而是接管骨骼矩阵计算并将结果写入Unity ECS的SkinMatrix buffer。其完整工作流程分为四个阶段：Baker阶段提取骨骼数据（主线程）、ConversionSystem阶段转换为Blob Asset（并行处理）、运行时动画计算（9个Job组成的CPU管线）以及最终的GPU蒙皮阶段。特别]]></description><category></category></item><item><title><![CDATA[Unity动态图集方案]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162910914</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162910914</guid><author>s10141303</author><pubDate>Wed, 15 Jul 2026 18:05:41 +0800</pubDate><description><![CDATA[本文介绍了Unity动态图集的实现方案，重点分析了两种核心算法：MaxRects和Shelf/Skyline。MaxRects算法空间利用率高但计算复杂，适合离线打包；Shelf算法运行速度快但利用率略低，更适合运行时动态图集需求。文章详细讲解了Shelf算法原理，并提供完整实现代码，通过维护"天际线"来动态管理图集空间。这种方案特别适合背包系统、头像展示等需要运行时动态加载大量图片的场景，能有效解决静态图集无法预知所有资源的问题。]]></description><category></category></item><item><title><![CDATA[Unity 极致高效的IM设计方案教程]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162908360</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162908360</guid><author>s10141303</author><pubDate>Wed, 15 Jul 2026 16:05:43 +0800</pubDate><description><![CDATA[本文介绍了一个基于 Unity 的高效 IM 聊天系统设计方案，重点阐述了四个核心优化点：消息协议定义、组件复用、对象池和虚拟滚动。系统采用 protobuf-net 定义统一的消息结构，通过枚举区分多种消息类型，实现协议层的高效处理。UI 组件采用三层继承结构，基类 MsgBaseItem 提供通用属性和方法，派生类 PTMsgItem、TipMsgItem 和 VoiceMsgItem 分别处理图文、提示和语音消息，通过预制体复用大幅减少资源开销。该系统为 Unity 中长列表聊天框的设计提供了完整的参]]></description><category></category></item><item><title><![CDATA[Unity 极致性能假阴影（Fake Shadow）方案原理技术剖析新手教程]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162892777</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162892777</guid><author>s10141303</author><pubDate>Wed, 15 Jul 2026 08:39:13 +0800</pubDate><description><![CDATA[Unity假阴影(Fake Shadow)高性能实现方案摘要 本文介绍了Unity中三种假阴影实现方案，特别推荐零额外Mesh的地面Shader绘制方案，适用于手机游戏、DOTS大批量渲染等需要高性能阴影的场景。 核心方案 地面Shader直接绘制（最优解） 原理：修改地面Shader，通过计算像素与角色距离动态绘制阴影 优势：零额外Mesh/Draw Call、完美贴合地面、DOTS友好 实现：使用ComputeBuffer传递角色位置数组到Shader 其他方案对比： 圆斑阴影：简单Quad实现，效果较]]></description><category></category></item><item><title><![CDATA[Unity游戏 Shader 变体搜集与剔除方案]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162804908</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162804908</guid><author>s10141303</author><pubDate>Sun, 12 Jul 2026 07:53:20 +0800</pubDate><description><![CDATA[Shader变体优化方案 本文介绍了Unity中Shader变体的优化方案，主要围绕收集、分析和剔除三个步骤展开。Shader变体是由#pragma multi_compile和#pragma shader_feature生成的组合，未经控制会导致包体膨胀和性能问题。 文章详细讲解了两种变体收集方法：1)通过ShaderVariantCollection手动维护，2)利用IPreprocessShaders回调自动采集。针对DOTS项目提供了特殊注意事项，强调需要确保所有Mesh/Material组合在场景]]></description><category></category></item><item><title><![CDATA[Rukhanka vs GPU ECS Animation —— Unity DOTS 动画系统技术方案对比]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162804634</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162804634</guid><author>s10141303</author><pubDate>Sun, 12 Jul 2026 07:17:21 +0800</pubDate><description><![CDATA[做动画的"中间商"。不管你怎么算（CPU 算还是 GPU 算），最终给到渲染管线的数据格式必须一样。CPU 引擎= 自己切菜、自己炒GPU 引擎= 让隔壁大厨（GPU）帮你切好炒好，你只管端上桌但菜谱（状态机、混合逻辑）始终是你自己定的。状态机等"决策逻辑"永远在 CPU → 骨骼矩阵计算"算数"可以换 CPU 或 GPU → 最终蒙皮用标准 Shader这就是为什么 Rukhanka 能做到"功能全、结果准、切换无感"。传统做法：每帧在 CPU 上算木偶每根线的位置 → 画出来。]]></description><category></category></item><item><title><![CDATA[极致性能HUD优化实战教程：从 UGUI 到 GPU Instancing + 动态合批]]></title><link>https://blog.youkuaiyun.com/s10141303/article/details/162794723</link><guid>https://blog.youkuaiyun.com/s10141303/article/details/162794723</guid><author>s10141303</author><pubDate>Sat, 11 Jul 2026 18:59:06 +0800</pubDate><description><![CDATA[本文介绍了如何将游戏中的HUD（如血条和伤害飘字）从UGUI方案优化为高性能的GPU渲染方案，包括使用GPU Instancing和动态合批Mesh技术。旧方案存在CPU开销高、Draw Call爆炸和GC压力大等问题，而新方案通过ComputeBuffer传递数据、合批渲染等方式显著提升了性能。文章详细讲解了核心概念、新旧方案对比及具体实现步骤，最终将血条Draw Call降至1~N/1023，飘字Draw Call降至1。]]></description><category></category></item></channel></rss>