# 唐老狮Unity框架 **Repository Path**: chenzichenzi/tls-unity-framework ## Basic Information - **Project Name**: 唐老狮Unity框架 - **Description**: b站唐老狮的一款Unity小框架 基于单例模式 适合偏小型的单机游戏与框架的入门 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2023-04-08 - **Last Updated**: 2025-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 唐老狮UnityFramework #### 介绍 自制的一款Unity小框架 适合中型或者偏小型的单机游戏 #### 软件架构 自制的一款Unity小框架 适合中型或者偏小型的单机游戏 参考于b站:唐老狮 并加以更新与改动 利用单例模式整合资源 包装了很多需要Using的包 并且简化了多余的操作 直接调用其对应函数即可完成你的需求。并运用了一些设计模式 如事件中心等 可直接订阅以及触发事件 省去多余操作 在使用时直接利用XXXMgr .Instance.XXX即可完成调用 #### 使用说明 ##### Base:单例模式 Singerton:普通单例 没啥好说的 MonoSingerton:继承于MonoBehaviours的单例 可update start等 但要在场景中挂载才可使用 AutoMonoSingerton:和以上的区别是不用手动挂载 在使用到时自动会加载进场景 但我不太喜欢用hh 因为会出现某些bug (因为使用时才创建 此时如果要马上引用的话 会导致空引用) ##### Event:事件中心 EventCenter:事件中心管理模块 可订阅 取消等等。并且避免了Object装箱拆箱 而是用反省来解决这一问题 并且用了一个空接口当基类来解决字典中不能把值类型设置成泛型的问题 ##### Mono:公共Mono管理模块 MonoMgr:如果有那种单例模式 并且又想用Monobehaviors方法的 就可以通过Mono模块代理执行 相当于一个中转站 MonoController:继承于MonoBehaviors 相当于代理执行的劳工 (A说我想执行update 并通知了MonoMgr,MonoMgr说好的并对自己手下的员工 MonoController说:帮A执行这个update 因为老板肯定不干活啦) (客户说我想要一个图书管理系统,并跟接待客户的跑业务人员说,跑业务的回公司后跟公司的程序员转达:帮客户做一个图书管理系统 (程序员:为什么苦逼的总是我55。。。)) ##### Input:输入控制模块 InputMgr:向事件中心订阅嘛 然后通过Mono模块检测 如果触发事件则执行对应的订阅函数 用了基本的观察者模式 ##### Pool:内存池模块 Pool:那种子弹类型的GameObject频繁的生成销毁还是会消耗一些资源的 不如就销毁时把它active取消 生成再打开active就好了 。 然后这个Pool模块还进行了优化 在场景中集中分类管理 在场景栏中调试也十分的整洁有序:生成的物件不仅会有一个总池保存 还会依据不同的物件进行分类管理。 ##### Res:资源管理模块 ResMgr:封装了一般及泛型的普通加载 异步加载 还有Addressable的异步加载实例化 更加方便 ##### Scenes:场景管理模块 SceneMgr:封装了一般与异步加载场景的方法 和 Addressable的异步加载场景 并每个都添加了回调函数的接口 DontDestroyMgr:因为单例模式很多都是默认跳转场景不销毁的 但也有必要弄一个让不销毁的再某些环境下销毁掉 取消不销毁的设定(比如重新开始游戏 回到主菜单时) ##### StaticTool:一些静态工具 MeshRendererSortingEditor:给MeshRenderer实现在场景中控制渲染层级 在2d游戏中 如果使用到MeshRenderer会十分有用。 ##### AB:ab包管理器 ABMgr:ab包加载等的管理器 ##### Lua:Lua管理器 LuaMgr:管理Xlua的初始,加载,重定向(本地文件夹或AB包)等 ##### StaticTool:一些静态工具 MeshRendererSortingEditor:给MeshRenderer实现在场景中控制渲染层级 在2d游戏中 如果使用到MeshRenderer会十分有用。 LuaCopyEditor:将Assert/lua文件夹下的所有.lua文件转为.txt文件 并打入AB包 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)