为了肝导师制开始再次捣鼓起Unity,在导入资源包时候发现Unity文件夹实在太多,感觉难以区分用途,整合记录下下。
普通文件夹
1.Assets
所有游戏资源文件夹,包括脚本、纹理、音效、自定义编辑器等等
2.Library
库文件夹
3.obj
给脚本编辑器用的
4.ProjectSettings
项目的设置信息文件夹,包括标签、层级、玩家设置等
5.Temp
Unity运行的临时文件夹
特殊文件夹
大多位于Asset文件夹下。
1.隐藏的文件夹
会被忽略,不会被导入也不会编译。
2.Editor
Editor文件夹中的资源文件或脚本都不会被打包进发布包中,也不能作为组件,并且脚本也只能在开发编辑时使用(当脚本涉及到对编辑器的操作时,必须放在这个文件夹里,如EditorWindow)。 常常将一些开发工具放在这个文件夹里面,如:技能编辑器,资源打包工具等。
3. Editor Dafault Resources
Editor Dafault Resourses,必须被放在Assets目录下。你可以把编辑器用到的一些资源放在这里,比如图片,文本等。它不会被打到最终发布包里,可以通过EditorGUIUtility.Load(“文件名”)来读取该文件夹下的资源,会优先查找该文件夹下的资源,然后再找Unity可能的内置同名资源。
4.Gizmos
需要绘制提示图标,辅助线之类来辅助开发时,可以使用Unity自带的Dizmos类。当组件继承了MonoBehaviour后,其生命周期里有OnDrawGizmos()方法,该方法只在编辑模式下每一帧执行,可用于在scene视图中绘制小物件。如下:
void OnDragGizmos()
{
Gizmos.DrawIcon(transform.position, "ImaInGizmos.png", true);
}
其中,ImaInGizmos.png就是放在Gizmos文件夹中的图片文件名字了,使用该函数可以直接调用位于该文件夹里的资源,发布时同样不会打入发布包中。
5.Plugins
只能在Assets直接子目录下,这个文件夹存放用于拓展Unity功能的插件,如:原生动态(native)链接库,sdk,工具代码等。使用这些插件可以访问第三方代码库,系统API以及超出Unity功能的模块。因为该文件夹中的东西会在第一阶段编译,以保证在其它地方使用时能够找得到。当打包时,这些文件就会自动包含进发布包中。 Plugins中文件分为两种:Managed plugins(.NET编写的工具)和Native plugins(原生代码编写的库)。如我们需要导入解析Json文件的LitJson插件,就需要把该LitJson.dll文件放到Plugins目录下;NGUI源码也是放在该文件夹下。 当我们开发的游戏需要对接多个平台时,要分平台打包,就需要对不同平台的plugin区分。在Plugins目录下建立对应平台的文件夹,unity在为不同平台打包时,就会将对应平台plugin里的脚本编译成dll,还会把已经是dll, so等库直接拷贝到包内相应位置。
6. Standard Assets
最先被编译的文件夹,往往用来存放导入的第三方资源包。
7. Pro Standard Assets
和Standard Assets一样,属于最先被编译的文件夹,不同的是,里面的文件是给Pro版本的Unity使用的。
8. Resources
用来存放资源的特殊文件夹,可以在任何目录下,可以在不同文件夹下有多个叫Resources的文件夹。 放在Resources文件夹中的资源都会被打包进发布包,Unity无法判断是否使用了其中的资源,所有在Resources中的资源都会被打包成一个缺省的AssetBundle(resources.assets)中。因此,一定要避免在不同Resources文件夹中出现同名资源的情况。当有同名资源的情况下,位于Standard Assets, Pro Standard Assets文件夹的优先级会较低(被认为是默认资源,当没有其它同名资源时才会找它)。 下面是资源加载方式:
Resources.Load("AssetName");
AssetDatabase.LoadAssetAtPath("AssetPath");
资源释放方式: 可以通过Destroy()来摧毁创建的游戏物体,然后通过Resources.UnloadUnusedAssets()来释放出内存。
9. StreamingAssets
放在该文件夹中的资源也会全部打进包中,但是它是”原封不动“的打包进去(直接拷贝到包里),在游戏运行时只能读不能写。不同平台该文件的路径也不同,使用Unity的Application.StreamingAssetsPath会根据平台返回正确路径。 一般将初始的AssetsBundle资源放在该文件夹下,并且通过WWW或者AssetsBundle.LoadFromFile加载使用。
10. WebPlayerTemplates
默认网页,这个文件夹中的脚本都不会被编译,该文件夹必须位于Assets目录下。
|