加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

浅析U3D项目资源目录结构

(2016-11-30 23:46:26)
分类: 技术美术相关

      在U3D项目开发中一个清晰而灵活的资源目录架构在项目开发的前期和后期的维护方面是非常重要的。这个直接关系到后面多个模块不同开发人员协同开发高效率的保证。

       U3D项目资源总共分为以下三种:

一、Assets。    

         Assets为资源总目录,对于非Resources和Streaming Assets以及Plungins下面的目录下的资源文件,在Build的时候,还是被设置过的场景资源有引用到,参考引擎自带的Build Setings,场景资源目录才会被添加到Build中,对于没有引用到的资源是不会被添加到中去的,利用这个功能,最大的好处莫过于能自动清理未使用的资源,减少人工维护资源成本,从而提升工作效率。对于不需要再游戏运行时加载的资源,我们都应该直接放到该目录下,而不是任何一个Resources目录下。

二、Resources     

        Resources是在Assets目录下所有的需要加载资源总目录。主要用来游戏运行时需要加载的游戏资源,当然也不是说资源不能存放在该目录下。Resources有一个前提需求就是在游戏运行的时候,不管有没有在游戏运行时资源是否被场景设置成加载,该目录下的所有资源都将会添加到Build中。所以U3D不会自动清理该目录下未使用的资源,需要我们自行维护,尤其是在最终的Build过程中,自行剔除未被场景引用的资源使其不参与到资源Build中是一个繁琐的过程,及其易导致出错,具体章节可以参考U3D官方文档Loading 

Resources at Runtime这一章节,手动剔除未被加载的资源使其不参与到Build的操作越复杂自然意味这要花更高的时间成本跟精力。所以把资源放到该目录下的时候一定要慎重再慎重考虑。

三、Streaming Assets。     

        Streaming Assets主要存放不想在Build过程中改变格式的资源,因为其他目录下的文件在Build后会生成一种U3D播放器专用的资源文件,利用这个目录,再结合Assets

Bundle的资源加载机制,可以用来实现,让U3D客户端程序从标准开发环境快速却换到目标平台的的真机测试环境中。以使项目能在不能的平台中查看资源的正确与否从而达到一个在项目未发布前自检的机会。

        我们看下U3D官方给出的资源目录结构说明文档。

Assets:主文件夹,包含所有工程目录需要用到的资源。

       *Editor:所有在Editor和它的子文件夹的脚本,都不会作为运行期脚本被编译,而是作为动态添加Unity编译器功能的脚本来编译。在该文件夹和其子文件夹的脚本都不能本添加到GameObject上。

       *Editor Default Resources:必须作为Assets的子文件夹,作为Editor脚本的资源使用,通过函数EditorGHIUtility.Load来使用。

       *Gizmos:场景面板中的图标图片资源,使用Gizmos.DrawIcon函数在场景面板新建图标,图标的图片资源必须位于这个文件夹内(比如Unity的各种插件)。

       *Atlas:放置UI图集。

       *Plugins:所有的插件资源,包括用C/C 编写的DLL库。

       *Resources:一般用来存放所有通过代码初始化使用的资源,可以放在工程中的任意文件夹中,在            Resources文件夹中的文件可以通过Resources.Load来读取。方式如下:

                    rend.materal.mainTexure=Resources.Load(“glass”)as Texture;

                    GameObject instance=Instantiat(Resources.Load(“enemy”,typeof(GameObject)))as GameObject;

       *Standard Assets:导入标准材质包是新建的拥有自己的编译顺序。

       *StreamingAssets:通过Application.streamingAssetsPath获取目录路径,该目录下的文件会原封不动的被拷贝到不同的平台上,每个平台对应的目录不一致,但是都可以通过上述方法获得。一般是用来存放视频等资源文件。

       *Hidden Assets:一般用来存放README以及一些操作系统生成的临时文件,这些文件/文件夹一般以.~或者名为cvs或者拓展名是tmp。

       *Script:用以放置脚本。

       *Scene:用以放置场景文件。

       *Role:放置角色相关文件。

       *Fx:放置特效相关文件。

       *Sound:放置声音相关文件。 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有