这些目录涉及到脚本的编译顺序,详细可参见手册:
http://docs.unity3d.com/Manual/ScriptCompileOrderFolders.html
http://docs.unity3d.com/Manual/SpecialFolders.html
如题,以下列举出我们在制作过程中常用到的几个特殊的文件夹的含义和用法:
1、Editor
Editor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以。比如目录:/xxx/xxx/Editor 和 /Editor 是一样的,无论多少个叫Editor的文件夹都可以。Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。一般呢会把一些工具类的脚本放在这里,或者是一些编辑时用的DLL。如果有引用到UnityEditor,该代码又没放到Editor目录下打包的时候会报错:
“error CS0246: The type or namespace name `UnityEditor' could not be found. Are you missing a using directive or an assembly reference?
Error building Player because scripts had compiler errors”
2、Editor Default Resources
Editor Default Resources注意中间是有空格的,它必须放在Project视图的根目录下。你可以把编辑器用到的一些资源放在这里,比如图片、文本文件、等等。它和Editor文件夹一样都不会被打到最终发布包里,仅仅用于开发时使用。你可以直接通过EditorGUIUtility.Load去读取该文件夹下的资源。
TextAsset text = EditorGUIUtility.Load("测试文本.txt")as TextAsset;
Paste_Image.png
3、Plugins
Plugins文件夹用来放native插件。它们会被自动包含进build中去。注意这个文件夹只能是Assets文件夹的直接子目录。
3.1. Plugins/Android 在这个文件夹里放入Java.jar文件。用于java语言的plugins。.so文件也会被包含进来。参考http://docs.unity3d.com/Documentation/Manual/PluginsForAndroid.html
3.2. Plugins/iOS A limited, simple way to automatically add (as symbolic links) any .a, .m, .mm, .c, or .cpp files into the generated Xcode project.
参考http://docs.unity3d.com/Documentation/Manual/BuildPlayerPipeline.html
4、Resources
可以在根目录下,也可以在子目录里,只要名子叫Resources就可以。比如目录:/xxx/xxx/Resources 和 /Resources 是一样的,无论多少个叫Resources的文件夹都可以。Resources文件夹下的资源不管你用还是不用都会被打包进.apk或者.ipa,会经过压缩,所以Resources下的文件要经常维护,不需要的就移除掉,不然白白占用包大小。
TextAsset text = Resources.Load("测试文本.txt")as TextAsset;
5、Standard Assets unity自带的package包会导入到这个文件夹,此外在这个文件夹中的脚本最先被编译。 这个文件夹中的脚本会被导出到Assembly-CSharp-firstpass, Assembly-UnityScript-firstpass 或 Assembly-Boo-firstpass项目中,依语言而定。编译顺序参考:http://docs.unity3d.com/Documentation/Manual/ScriptCompileOrderFolders.html
。在这个文件夹中的脚本比其他脚本都要先编译。将脚本放在这个文件夹里,就可以用C#脚本来访问js脚本或其他语言的脚本。
6、StreamingAssets
这个文件夹是一个只读的文件夹,目录下的资源在运行时只能读不能写。这里的文件会被原封不动的打包进.apk或者.ipa。它们的路径会因平台而有差异,但都可以通过Application.streamingAssetsPath来访问。
参考http://docs.unity3d.com/Documentation/Manual/StreamingAssets.html
和http://docs.unity3d.com/Documentation/ScriptReference/Application-streamingAssetsPath.html
。
7、隐藏文件夹
隐藏文件和文件夹会被Unity忽略,在隐藏文件夹中的资源不会被导入,脚本不会被编译。也不会出现在Project视图中。比如.svn和.git文件夹;隐藏的包括:本身就是隐藏的文件夹、以.开头的文件和文件夹、以~结尾的文件和文件夹、名字是cvs的文件和文件夹、.tmp后缀的文件。如果有开启.meta文件设置,在project视图直接重命名为隐藏的格式会生成.meta文件,.meta会报错,要再把.meta文件删掉。参考:http://docs.unity3d.com/Manual/SpecialFolders.html
网友评论