UF——程序基础小框架系列

2023-12-23记:

本系列笔记跟课课程已重置,因此本系列笔记也使用重置版课程重新制作
所有使用旧课程的原笔记已标记为过时,归档到本系列的UF_OLD文档下,不建议使用旧笔记

相比旧课程,新课程结合了更多的课程的知识,前置知识要求更高,不再是只学习Unity前三部曲就能直接学习的了

学习目标

不同游戏、不同公司使用的游戏框架可能都是不一样的,市面上有很多第三方框架(别人设计好的游戏框架)
比如GameFramework、PureMVC 以及 Unity中较新的Dots系统

除此之外,还有一些软件架构思想,比如MVC、ECS等等
我们可以选择别人制作好的第三方框架 (商业项目开发中,前端框架一般很少使用别人的)
可以基于常用的软件架构思想来设计自己的框架 (常见)
也可以完全基于设计模式来设计自己的框架 (常见)

对于想要进入游戏行业的学习者来说, 我们需要对游戏框架有一个基础的认识,要感知到游戏框架的好处,了解设计游戏框架的基本思路

虽然Unity引擎已经帮助我们封装了很多游戏当中的常用功能
但是我们还是可以在它的基础上再次进行设计和封装,将游戏开发中的常用内容模块化
从而达到提升开发效率、优化性能的目的

为什么第一步做这些?

  1. 公共模块可以简单的理解为整个程序框架,提升开发效率
  2. 这些模块在游戏中各处都会用到
  3. 往往这些模块在各个小项目中是通用的,完成一次之后可通用

注:笔记内所有代码都是跟课学习而来的,与课上的代码基本没有差别,但课上的这些代码完全可以根据自己需要来自行修改,不必拘泥于课上所学

本系列学习内容

  • 单例模式基类

  • 公共Mono模块

  • 缓存池(对象池)模块

    • 缓存池具体实现
    • 窗口布局优化
    • 对象上限优化
    • 增加缓存对象种类
  • 事件中心模块

    • 事件中心具体实现
    • 事件中心传递参数
    • 事件中心传递自定义参数​
    • 事件中心的事件名优化
  • 资源加载模块

    • Resource资源加载模块

      • Resource资源加载模块的具体实现
      • 优化Resources资源加载模块的异步加载
      • 添加引用计数的Resource资源加载模块
    • Editor资源加载模块

    • Assetbundle资源加载模块

      • AB包资源管理器回顾及潜在问题考虑
      • AB包资源管理器的异步加载修改
      • AB包资源管理器的同步加载修改
    • UnityWebRequest资源加载模块

  • 音效管理模块

    • 音效管理模块音乐部分实现
    • 音效管理模块音效部分实现
    • 音效管理模块优化
  • UI管理模块

    • UI面板基类
    • UI管理器
    • UI管理器的异步加载优化
    • UI管理器的隐藏面板可选销毁优化
    • UI模块的自定义事件添加函数
  • 场景切换模块

  • 输入控制模块

    • 输入控制模块的具体实现
    • 输入控制模块的改键功能
    • 输入控制模块的获取输入消息
  • 计时器模块

    • TimerItem 具体实现
    • TimeManager 具体实现
    • TimeManager 进阶优化
  • 加密工具模块

  • 文本工具模块

    • 字符串拆分方法

    • 数字转字符串相关

    • 秒转时间字符串相关

      • 时分秒
      • 00:00:00
    • 大数据数值转字符串方法

  • 数学计算工具模块

    • 角度和弧度的转换
    • 距离判断相关
    • 屏幕外判断
    • 扇形范围判断
    • 射线检测
    • 范围检测