這些目錄涉及到腳本的編譯順序,詳細(xì)可參見(jiàn)手冊(cè):
http://docs.unity3d.com/Manual/ScriptCompileOrderFolders.html
http://docs.unity3d.com/Manual/SpecialFolders.html
如題,以下列舉出我們?cè)谥谱鬟^(guò)程中常用到的幾個(gè)特殊的文件夾的含義和用法:
1、Editor
Editor文件夾可以在根目錄下,也可以在子目錄里,只要名子叫Editor就可以。比如目錄:/xxx/xxx/Editor 和 /Editor 是一樣的,無(wú)論多少個(gè)叫Editor的文件夾都可以。Editor下面放的所有資源文件或者腳本文件都不會(huì)被打進(jìn)發(fā)布包中,并且腳本也只能在編輯時(shí)使用。一般呢會(huì)把一些工具類的腳本放在這里,或者是一些編輯時(shí)用的DLL。如果有引用到UnityEditor,該代碼又沒(méi)放到Editor目錄下打包的時(shí)候會(huì)報(bào)錯(cuò):
“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文件夾一樣都不會(huì)被打到最終發(fā)布包里,僅僅用于開發(fā)時(shí)使用。你可以直接通過(guò)EditorGUIUtility.Load去讀取該文件夾下的資源。
TextAsset text = EditorGUIUtility.Load("測(cè)試文本.txt")as TextAsset;
3、Plugins
Plugins文件夾用來(lái)放native插件。它們會(huì)被自動(dòng)包含進(jìn)build中去。注意這個(gè)文件夾只能是Assets文件夾的直接子目錄。
3.1. Plugins/Android 在這個(gè)文件夾里放入Java.jar文件。用于java語(yǔ)言的plugins。.so文件也會(huì)被包含進(jìn)來(lái)。參考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 是一樣的,無(wú)論多少個(gè)叫Resources的文件夾都可以。Resources文件夾下的資源不管你用還是不用都會(huì)被打包進(jìn).apk或者.ipa,會(huì)經(jīng)過(guò)壓縮,所以Resources下的文件要經(jīng)常維護(hù),不需要的就移除掉,不然白白占用包大小。
TextAsset text = Resources.Load("測(cè)試文本.txt")as TextAsset;
5、Standard Assets unity自帶的package包會(huì)導(dǎo)入到這個(gè)文件夾,此外在這個(gè)文件夾中的腳本最先被編譯。 這個(gè)文件夾中的腳本會(huì)被導(dǎo)出到Assembly-CSharp-firstpass, Assembly-UnityScript-firstpass 或 Assembly-Boo-firstpass項(xiàng)目中,依語(yǔ)言而定。編譯順序參考:http://docs.unity3d.com/Documentation/Manual/ScriptCompileOrderFolders.html
。在這個(gè)文件夾中的腳本比其他腳本都要先編譯。將腳本放在這個(gè)文件夾里,就可以用C#腳本來(lái)訪問(wèn)js腳本或其他語(yǔ)言的腳本。
6、StreamingAssets
這個(gè)文件夾是一個(gè)只讀的文件夾,目錄下的資源在運(yùn)行時(shí)只能讀不能寫。這里的文件會(huì)被原封不動(dòng)的打包進(jìn).apk或者.ipa。它們的路徑會(huì)因平臺(tái)而有差異,但都可以通過(guò)Application.streamingAssetsPath來(lái)訪問(wèn)。
參考http://docs.unity3d.com/Documentation/Manual/StreamingAssets.html
和http://docs.unity3d.com/Documentation/ScriptReference/Application-streamingAssetsPath.html
。
7、隱藏文件夾
隱藏文件和文件夾會(huì)被Unity忽略,在隱藏文件夾中的資源不會(huì)被導(dǎo)入,腳本不會(huì)被編譯。也不會(huì)出現(xiàn)在Project視圖中。比如.svn和.git文件夾;隱藏的包括:本身就是隱藏的文件夾、以.開頭的文件和文件夾、以~結(jié)尾的文件和文件夾、名字是cvs的文件和文件夾、.tmp后綴的文件。如果有開啟.meta文件設(shè)置,在project視圖直接重命名為隱藏的格式會(huì)生成.meta文件,.meta會(huì)報(bào)錯(cuò),要再把.meta文件刪掉。參考:http://docs.unity3d.com/Manual/SpecialFolders.html