GameFramework 开发脚手架之 项目的目录结构介绍

109 阅读3分钟

项目 github地址

参考

GameFramework框架详解之 框架总览

这篇文章对GameFramework的总体框架做了详细介绍,这里就不多赘述了。这篇文章主要是对重构后的StarForce 项目的目录结构先做个总体概述。

项目总体目录结构

  1. Assets/GameFramework 框架目录

    GameFramework 框架的库,官方操作是从官网直接下载unitypackage,然后导入就好了。

    这里有个坑,截至写这篇文章的2023年9月14号,官方例子 StartForce 里用的并不是最新出的 "2021.05.31", 而是 github主干上的代码。所以。。。我重构的StartForce项目,对应的GameFramework是主干的代码,而不是"2021.05.31"。如果你用 "2021.05.31"替换的话会有一些方法找不到。

  2. Assets/StreamingAssets

    打包的时候随着包出去的资源(ab包)放这里,这个在后边讲资源打包和热更新的时候会详细讲。

  3. Assets/GameMain 当前游戏目录,游戏开发基本都是在当前目录下进行。

    • Assets/GameMain/3rd
      三方包目录,目前只有LitJson库,以后添加的三方依赖库统一放这里。

    • Assets/GameMain/AssetsPackage 游戏中的配置表,美术等需要打ab包的资源统一放这里,打ab包的时候主要就是针对这个包。策划和美术只会改动这个包下对应的目录。

    • Assets/GameMain/Editor 游戏的Unity面板工具,GameFramework本身有一个面板工具,囊括了大部分功能,但游戏自己也会根据自身需求做一些工具类的扩展,统一放这个目录

    • Assets/GameMain/Scenes
      所有的场景放这里,有考虑要不要放到 Assets/GameMain/AssetsPackage 下,考虑到使用的方便,场景是个高频操作,所以还是把Scenes目录往上提了一层。

    • Assets/GameMain/Scripts
      游戏逻辑代码 分成 Base 和 Game

游戏逻辑代码目录结构

  1. Assets/GameMain/Scripts/Base 业务无关,UnityGameFramework 框架的封装和延伸。

    • Entry 游戏入口,主要是做框架的初始化工作,在随后项目启动一章会详细介绍
    • FrwCmpt 游戏自己的组件,目前是有一个mono的生命周期,一些功能需要mono生命周期,但又和业务无关的,可以在这里注册,进行统一管理。
    • FrwMgrs 对 UnityGameFramework 框架组件的二次封装,业务类只能使用这个目录下的类
    • Utils 一些常用的工具类
      GameFramework 框架本身也提供了一些工具里,好的做法是不要直接使用 GameFramework 的工具类,而是把用到的工具类封装成自己的工具类,然后业务层规定只能使用自己的工具类,这样可以很好的控制对GameFramework的依赖。
  2. Assets/GameMain/Scripts/Game StartForce业务代码,重新按业务组织了代码,让其更模块化一点

    • Battle 主业务逻辑,战机发射,中弹,扣血,胜负判断,等等战场相关
    • Comm 通用业务,跨模块数据结构定义
    • DataTables 游戏配置表
    • Procedure 业务流程,业务层主要就是按照流程来对业务代码进行规划和聚合,一个流程就是一个大的模块,要做到流程之间尽可能少的耦合。
    • CpBs (cross procedure business)跨流程的业务放这里,流程自己的业务放在自己的流程下面,StartForce暂时还没有

代码层面的开发主要就是先判断新业务是否要加流程?是在某个流程下的业务还是跨流程的业务?在对应的目录下做扩展,保证业务代码目录的独立性,尽量减少自己业务和别的业务的耦合(减少耦合接口和耦合类),保证自己的业务模块在代码层面是方便插拔的。