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