<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[徽程22级的在读学生]]></title><description><![CDATA[一枚喜欢game的射手座]]></description><link>https://blog.csdn.net/MY_future_</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; MY_future_]]></copyright><item><title><![CDATA[29.音效管理模块原理和作用]]></title><link>https://blog.csdn.net/MY_future_/article/details/164811071</link><guid>https://blog.csdn.net/MY_future_/article/details/164811071</guid><author>MY_future_</author><pubDate>Thu, 10 Sep 2026 10:12:23 +0800</pubDate><description><![CDATA[游戏中很多地方都会使用音乐和音效，如果每个模块都单独处理音效，会产生大量重复代码，也不方便统一管理。因此需要一个独立的，统一管理游戏中的音乐和音效。]]></description><category></category></item><item><title><![CDATA[28.资源加载模块整合]]></title><link>https://blog.csdn.net/MY_future_/article/details/164810961</link><guid>https://blog.csdn.net/MY_future_/article/details/164810961</guid><author>MY_future_</author><pubDate>Thu, 10 Sep 2026 10:11:32 +0800</pubDate><description><![CDATA[资源加载模块中，会把之前已经完成的小框架代码按照功能进行分类整理，放到对应的框架文件夹中。]]></description><category></category></item><item><title><![CDATA[27.Assetbundle资源加载：优化重复加载]]></title><link>https://blog.csdn.net/MY_future_/article/details/164810835</link><guid>https://blog.csdn.net/MY_future_/article/details/164810835</guid><author>MY_future_</author><pubDate>Thu, 10 Sep 2026 10:10:33 +0800</pubDate><description><![CDATA[本节将这三个阶段都改为异步加载。主包和可以继续同步加载。]]></description><category></category></item><item><title><![CDATA[26.Assetbundle资源加载模块]]></title><link>https://blog.csdn.net/MY_future_/article/details/164810629</link><guid>https://blog.csdn.net/MY_future_/article/details/164810629</guid><author>MY_future_</author><pubDate>Thu, 10 Sep 2026 10:09:31 +0800</pubDate><description><![CDATA[如果只有第二步使用异步 API，第一步仍然同步，就不算完整的异步加载。]]></description><category></category></item><item><title><![CDATA[25.Editor 资源加载：基本实现]]></title><link>https://blog.csdn.net/MY_future_/article/details/164716996</link><guid>https://blog.csdn.net/MY_future_/article/details/164716996</guid><author>MY_future_</author><pubDate>Wed, 09 Sep 2026 09:41:37 +0800</pubDate><description><![CDATA[根据完整工程路径加载一个指定类型的资源。]]></description><category></category></item><item><title><![CDATA[24.Editor 资源加载：主要作用和基本原理]]></title><link>https://blog.csdn.net/MY_future_/article/details/164716665</link><guid>https://blog.csdn.net/MY_future_/article/details/164716665</guid><author>MY_future_</author><pubDate>Wed, 09 Sep 2026 09:39:39 +0800</pubDate><description><![CDATA[正式发布的项目通常会使用管理大部分游戏资源，以减小包体并支持热更新。但是在开发阶段频繁打包 AssetBundle 会降低开发效率，因此可以直接从 Unity 工程中加载资源，等到最终测试或发布时再改用 AssetBundle。]]></description><category></category></item><item><title><![CDATA[23.Resources资源加载：引用计数优化]]></title><link>https://blog.csdn.net/MY_future_/article/details/164716461</link><guid>https://blog.csdn.net/MY_future_/article/details/164716461</guid><author>MY_future_</author><pubDate>Wed, 09 Sep 2026 09:38:23 +0800</pubDate><description><![CDATA[之前的资源管理器只知道资源是否已经加载，却不知道还有多少地方正在使用它。如果直接卸载，可能导致其他使用者受到影响；如果一直不卸载，又会让无用资源长期占用内存。]]></description><category></category></item><item><title><![CDATA[22.Resources资源加载：同步加载优化]]></title><link>https://blog.csdn.net/MY_future_/article/details/164715139</link><guid>https://blog.csdn.net/MY_future_/article/details/164715139</guid><author>MY_future_</author><pubDate>Wed, 09 Sep 2026 09:30:01 +0800</pubDate><description><![CDATA[Resources加载过的资源会保存在内存中。再次加载同一资源时，通常会直接使用已有资源，不会重复占用一份资源内存。但是每次调用异步加载仍然会进行查找并开启协程，重复调用会产生不必要的性能开销。]]></description><category></category></item><item><title><![CDATA[21.Resources资源加载：异步加载优化]]></title><link>https://blog.csdn.net/MY_future_/article/details/164714913</link><guid>https://blog.csdn.net/MY_future_/article/details/164714913</guid><author>MY_future_</author><pubDate>Wed, 09 Sep 2026 09:28:44 +0800</pubDate><description><![CDATA[Resources加载过的资源会保存在内存中。再次加载同一资源时，通常会直接使用已有资源，不会重复占用一份资源内存。但是每次调用异步加载仍然会进行查找并开启协程，重复调用会产生不必要的性能开销。]]></description><category></category></item><item><title><![CDATA[20.Resources资源加载：基本实现]]></title><link>https://blog.csdn.net/MY_future_/article/details/164572184</link><guid>https://blog.csdn.net/MY_future_/article/details/164572184</guid><author>MY_future_</author><pubDate>Tue, 08 Sep 2026 09:38:14 +0800</pubDate><description><![CDATA[将Resources的加载和卸载方法统一封装到ResMgrResMgr由于普通 C# 类不能直接开启协程，异步操作需要通过MonoMgr执行。]]></description><category></category></item><item><title><![CDATA[19.资源加载模块：主要作用和基本原理]]></title><link>https://blog.csdn.net/MY_future_/article/details/164572060</link><guid>https://blog.csdn.net/MY_future_/article/details/164572060</guid><author>MY_future_</author><pubDate>Tue, 08 Sep 2026 09:37:32 +0800</pubDate><description><![CDATA[Unity 项目中可能同时使用多种资源加载方式：实际开发中可能组合使用多种加载方式。如果加载代码分散在不同系统中，会出现两个主要问题：资源加载模块主要负责：先将不同加载方式分别模块化：
然后通过上层资源加载模块进行整合：
调用者根据项目需求选择具体加载方式，各加载模块只负责自己对应的资源。 仍然可以用于简单项目和快速原型，但大量使用可能增加构建体积、内存占用和启动时间。当前 Unity 的  可以通过地址异步加载本地或远程资源，并自动处理资源依赖。对于需要统一资源组织和异步加载的新项目，通常优先考虑 。本节]]></description><category></category></item><item><title><![CDATA[18.事件中心优化：事件名]]></title><link>https://blog.csdn.net/MY_future_/article/details/164571938</link><guid>https://blog.csdn.net/MY_future_/article/details/164571938</guid><author>MY_future_</author><pubDate>Tue, 08 Sep 2026 09:36:55 +0800</pubDate><description><![CDATA[三处必须使用同一个枚举成员和同一种参数类型。]]></description><category></category></item><item><title><![CDATA[17.事件中心优化：泛型参数]]></title><link>https://blog.csdn.net/MY_future_/article/details/164571681</link><guid>https://blog.csdn.net/MY_future_/article/details/164571681</guid><author>MY_future_</author><pubDate>Tue, 08 Sep 2026 09:36:02 +0800</pubDate><description><![CDATA[使用object监听方法可以直接接收Enemy3这样不需要类型转换，传递值类型时也能避免object产生的装箱和拆箱。]]></description><category></category></item><item><title><![CDATA[16.事件中心优化：添加参数]]></title><link>https://blog.csdn.net/MY_future_/article/details/164571468</link><guid>https://blog.csdn.net/MY_future_/article/details/164571468</guid><author>MY_future_</author><pubDate>Tue, 08 Sep 2026 09:34:25 +0800</pubDate><description><![CDATA[原来的事件只能通知监听者“敌人死亡了”，不能告诉监听者死亡的是哪个敌人。添加参数后，Enemy和Player收到事件后，就能读取死亡敌人的名称、编号等信息。]]></description><category></category></item><item><title><![CDATA[15.事件中心：实现]]></title><link>https://blog.csdn.net/MY_future_/article/details/164452626</link><guid>https://blog.csdn.net/MY_future_/article/details/164452626</guid><author>MY_future_</author><pubDate>Mon, 07 Sep 2026 10:21:56 +0800</pubDate><description><![CDATA[不直接引用Level和Player，而是通过EventMgr发送死亡事件，从而降低对象之间的耦合度。]]></description><category></category></item><item><title><![CDATA[14.事件中心：主要作用和原理]]></title><link>https://blog.csdn.net/MY_future_/article/details/164452573</link><guid>https://blog.csdn.net/MY_future_/article/details/164452573</guid><author>MY_future_</author><pubDate>Mon, 07 Sep 2026 10:20:59 +0800</pubDate><description><![CDATA[如果怪物直接引用这些系统，对象和模块之间会互相依赖。随着系统增多，引用关系会越来越复杂，耦合度也会越来越高，不利于开发和维护。]]></description><category></category></item><item><title><![CDATA[13.缓存池优化：对象上限配置]]></title><link>https://blog.csdn.net/MY_future_/article/details/164452509</link><guid>https://blog.csdn.net/MY_future_/article/details/164452509</guid><author>MY_future_</author><pubDate>Mon, 07 Sep 2026 10:20:00 +0800</pubDate><description><![CDATA[这种方式要求调用者每次获取对象时都知道并传入正确的上限。表示这一类对象最多允许同时创建多少个实例。因为它是公共字段，所以可以直接在 Unity Inspector 中修改。如果由调用者传入上限，同一种对象可能在不同位置得到不同配置。传入的是相对路径，不需要扩展名。将它重新添加到列表尾部，表示该对象开始了新一轮使用。这样可以保证对象数量达到上限后不再继续实例化。达到数量上限且没有空闲对象时，会取出。创建的预制体都必须添加该组件。，调用者只需要提供资源路径。在实例化对象后获取它的。Lesson13 通过。]]></description><category></category></item><item><title><![CDATA[12.缓存池优化：对象上限]]></title><link>https://blog.csdn.net/MY_future_/article/details/164452445</link><guid>https://blog.csdn.net/MY_future_/article/details/164452445</guid><author>MY_future_</author><pubDate>Mon, 07 Sep 2026 10:18:35 +0800</pubDate><description><![CDATA[原对象池在空闲池中没有对象时，会不断实例化新对象。如果已经取出的对象长时间不归还，每次调用GetObj()都可能创建新对象，导致同类对象的数量没有上限。]]></description><category></category></item><item><title><![CDATA[11.缓存池优化：窗口布局]]></title><link>https://blog.csdn.net/MY_future_/article/details/164452394</link><guid>https://blog.csdn.net/MY_future_/article/details/164452394</guid><author>MY_future_</author><pubDate>Mon, 07 Sep 2026 10:17:35 +0800</pubDate><description><![CDATA[对象池中的对象通常不会真正销毁，而是：obj.SetActive(false)，然后继续保留在场景中。当对象数量变多以后，Hierarchy 中可能出现大量失活对象。]]></description><category></category></item><item><title><![CDATA[10.缓存池的实现]]></title><link>https://blog.csdn.net/MY_future_/article/details/164452330</link><guid>https://blog.csdn.net/MY_future_/article/details/164452330</guid><author>MY_future_</author><pubDate>Mon, 07 Sep 2026 10:16:26 +0800</pubDate><description><![CDATA[保存不同类型的对象。Dictionary：整个柜子string：抽屉名字 / 对象类型标识Stack<GameObject>：某一类对象的缓存容器。]]></description><category></category></item></channel></rss>