[关闭]
@ts541933433 2018-12-05T08:23:14.000000Z 字数 1644 阅读 3865

《蒙琦游戏》《地幕端》

Unity下Assets资源目录结构管理

说明:为了能将多个项目进行整合并有效的管理,应该整个项目的资源进行分类规划。


分类规则:按照以下规则依次往下进行分类

1.项目分类

每个项目都应该有自己单独的文件夹,路径在Assets下。其名称要表现其项目特性且不能重复
例如:《上海地铁》项目,路径为(Assets/SubwayGame)

类型 说明 路径
己方项目类 每个单独的项目除通用资源外应该将自己所有的资源封装在一个文件下 Assets/xxx
插件类 直接导入引用即可,不用做多余处理 Assets/xxx

2.资源分类

为避免资源浪费,文件包过大。应把所有项目用到的重复资源(例如:图片,声音等)
单独提取出来放在Assets下对应的资源文件夹里。

类型 说明 路径
各项目自用资源 每个项目自有资源应该被整个封装在该项目独有的文件夹下 例如上海地铁项目的背景图片文件:BGimage。路径为(Assets/SubwayGame/Textures/BGimage)子层级可以自己定义
通用资源 两个以上项目所用到的资源,都可以算作通用资源 例如一个通用的声音文件:BGM。路径为(Assets/Audios/BGM)。

Unity目录:(Assets为主目录,其他所有文件都在Assets目录下)

基础目录:

  • Resources(可动态加载的资源路径)
    只读文件;资源全部打包发布;压缩打包;加密;Resoureces.Load方式加载
  • Editor(存放编辑器的扩展脚本。)
    所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。
    工具类的脚本放在这里,或者是一些编辑时用的DLL。
  • Plugins(SDK依赖的库文件)
  • StreamingAssets (可动态加载的资源路径)
    只读文件;资源全部打包发布;不压缩打包;不加密;WWW方式加载
  • Scripts (存放脚本)
  • Scenes (存放场景)

资源目录:

  • Textures (贴图)
  • Fonts (文字)
  • Audios (音频)
  • Prefabs (预制体)
  • Models (模型)
  • Shaders (材质球)

动态加载资源的方式(Resources.Load与AssetBundle)

  • Resources.Load:动态内部加载
  • AssetBundle:动态外部加载

为了以后可能要使用Unity热更新,请使用AssetBundle打包方式


实例展示

假如我现在有两个小项目《上海地铁》与《我是中国人》要整合到一个项目中。
分别用到了(TouchScript)与(DoTween)插件。
下面我们按照上面所述来进行分类

1.先进行项目分类

现在有《上海地铁(SubwayGame)》和《我是中国人(Chinese)》两个项目,(TouchScript)和(DoTween)两个插件。一共四个项目,那么就有四个项目文件夹。如图:
tool-manager

2.然后我们在进行资源分类,首先把所有的公用的目录给创建出来。如图:

tool-manager
但这样会发现一个问题,一大堆资源目录放在了根目录下,太多太乱,还会导致与别的项目分不清,所以我们再新建一个名为Common的文件夹,然后把这些公用资源目录放在该文件夹下。如图:
tool-manager
由于SreamingAssets访问方式是固定路径的,只能放在根目录下并且只有一个,所以将它单独放在了根目录下。

最后对于我们单独的项目,里面需要用到什么资源,那就单独在该项目的目录下建立需要的目录就可以了。
假设《上海地铁》这个项目有场景资源,图片资源,脚本,模型等。那列表如图:
tool-manager

基本上资源目录结构就是这样了。
以上内容是我个人总结的,如果有什么不对之处,还请指出,谢谢!


版本规范,为了以后方便项目整合,请使用版本统一的工具

下载统一或更高的版本

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注