Frame01 结构索引

目录结构

1
2
3
4
5
6
7
8
9
10
11
------3rdPlugins                            第三方的一些插件
------Code 所有脚本存放目录
---------->Game@hotfix 游戏的热更代码
---------->Game@main 游戏主工程代码
------Plugins 需要打包至移动端的插件代码
------Resource *** 所有项目资源
----------->Runtime 这里全都是需要动态Load的资源,如Prefab,目录下所有资源都会被打包
所以静态引用资源丢到其他目录。
需要手动Load的资源才放到这里。这个目录用BResource.Load接口加载.
----------->Table 表格目录
------Resources <font color="red">预留给主工程用的,用Resource.Load接口加载的目录</font>

目录解释

Plugins

编译插件。类似 Odin 和 Sqlite 等

Resources

Unity 自带资源管理。
一般不要用。用于启动初始脚本内容

  1. 因为Resources启动编辑器会加载。后期会卡
  2. 官方推荐AssetBundle加载
  3. Resource/Runtime ≈ Resources

    Config 解释

注意事项

  1. 全局除了UI组件之外,不允许任何脚本继承MonoBehavior

    作用:为了减少生命周期和内容绑定

  2. 避免面向状态编程(Update接口 ),业务尽量以事件编程为主。(时序逻辑可以用协程代替)

    同上

  3. 同模块,同类型业务cs文件,尽量以同样的前缀开头,便于文件系统排序管理。如:Windows_Login
  4. 热更部分和非热更部分尽量不要同名,非热更部分尽量以M_开头进行命名,M_UIManager.(M即Main,主工程之意)

    主要就是一个好认 好识别 好纠错

  5. 主工程不要访问热更工程类!!!

    如果写了屎 就会被递归 所以不要写

  6. 热更代码中,不要使用宏!!!不要使用宏!!!

    DLL都分开了 生效作用 和 意义来源 都不确定了

  7. Unity 常见问题
    • public static 减少使用,静态遍历没法单元测试。来源无法追溯等问题
    • 热更不要用来计算。会卡
    • 减少跨域继承 和 问题5 类似

Code RunTime

  • ILRuntime 热更脚本
  • HCLR 内容反射
  • MONO Unity

csproj 对应解释

  1. Embedded packages 来源 UPM
  2. Local packages 来源 本地自定义的 packages
  3. Registry packages 来源 注册包一般是第三方 索引站 例如:Open UPM
  4. Build-in packages 来源 Unity编译包内容 比如 Cinemachine 和 TextMesh
  5. Local tarball 指的是 .tar 压缩文件
  6. Unknow sources 当然就是不明来路的资源

一般前三就够用了