(轉)Unity Assets目錄下的特殊資料夾名稱(作用和是否會被打包到build中)

weixin_34319640發表於2014-11-21

原文:http://wiki.unity3d.com/index.php/Special_Folder_Names_in_your_Assets_Folder

1.隱藏資料夾
以.開頭的資料夾會被Unity忽略。在這種資料夾中的資源不會被匯入,指令碼不會被編譯。也不會出現在Project檢視中。
2.Standard Assets
在這個資料夾中的指令碼最先被編譯。
這個資料夾中的指令碼會被匯出到Assembly-CSharp-firstpass, Assembly-UnityScript-firstpass 或 Assembly-Boo-firstpass專案中,依語言而定。參考http://docs.unity3d.com/Documentation/Manual/ScriptCompileOrderFolders.html 。在這個資料夾中的指令碼比其他指令碼都要先編譯。將指令碼放在這個資料夾裡,就可以用C#指令碼來訪問js指令碼或其他語言的指令碼。
3.Pro Standard Assets
跟Standard Assets相同,只不過裡面的檔案是給Pro版本的Unity使用的。
4.Editor
以Editor命名的資料夾允許其中的指令碼訪問Unity Editor的API。如果指令碼中使用了在UnityEditor名稱空間中的類或方法,它必須被放在名為Editor的資料夾中。Editor資料夾中的指令碼不會在build時被包含。
在專案中可以有多個Editor資料夾。
注意:如果在普通的資料夾下,Editor資料夾可以處於目錄的任何層級。如果在特殊資料夾下,那Editor資料夾必須是特殊資料夾的直接子目錄。
5.Plugins
Plugins資料夾用來放native外掛。它們會被自動包含進build中去。注意這個資料夾只能是Assets資料夾的直接子目錄。
在Windows平臺下,native 外掛是dll檔案;Mac OS X下,是bundle檔案;Linux下,是.so檔案。
跟Standard Assets一樣,這裡的指令碼會更早的編譯,允許它們被之外的指令碼訪問。
5.1.Plugins/x86
如果為32bit或64bit平臺建立遊戲,那麼這個資料夾下的native plugin檔案會被自動的包含在遊戲build中。如果這個資料夾不存在,則Unity會查詢Plugins資料夾下的native pluglins。
5.2.Plugins/x86_64
如果為32bit或64bit平臺建立遊戲,那麼這個資料夾下的native plugin檔案會被自動的包含在遊戲build中。如果這個資料夾不存在,則Unity會查詢Plugins資料夾下的native pluglins。


如果要建立universal build,建議你同時使用這兩個資料夾。然後將32bit和64bit的native plugins放進相應的資料夾中。
5.3.Plugins/Android
在這個資料夾裡放入Java.jar檔案。用於java語言的plugins。.so檔案也會被包含進來。參考http://docs.unity3d.com/Documentation/Manual/PluginsForAndroid.html
5.4.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. Seehttp://docs.unity3d.com/Documentation/Manual/PluginsForIOS.html
If you need more control how to automatically add files to the Xcode project, you should make use of the PostprocessBuildPlayer feature. Doing so does not require you to place such files in the Plugins/iOS folder. Seehttp://docs.unity3d.com/Documentation/Manual/BuildPlayerPipeline.html


6.Resources
Resources資料夾允許你在指令碼中通過檔案路徑和名稱來訪問資源。但還是推薦使用直接引用來訪問資源。
放在這一資料夾的資源永遠被包含進build中,即使它沒有被使用。因為Unity無法判斷指令碼有沒有訪問了其中的資源。
專案中可以有多個Resources資料夾,因此不建議在多個資料夾中放同名的資源。
一旦build遊戲,Resources資料夾中的所有資源被打包進遊戲存放資源的archive中。這樣在遊戲的build中就不存在Resources資料夾了。即使指令碼中仍然使用了資源在專案中的路徑。參考 http://docs.unity3d.com/Documentation/Manual/LoadingResourcesatRuntime.html
注意:當資源作為指令碼變數被訪問時,這些資源在指令碼被例項化後就被載入進記憶體。如果資源太大,你可能不希望它被這樣載入。那麼你可以將這些大資源放進Resources資料夾中,通過Resources.Load來載入。當不再使用這些資源了,可以通過Destroy物體,再呼叫Resources.UnloadUnusedAssets來釋放記憶體。
7.Editor Default Resources
這是為editor 指令碼使用的資料夾。
8.Gizmos
Gizmos資料夾存放用Gizmos.DrawIcon方法使用的貼圖、圖示資源。放在Gizmos資料夾中的貼圖資源可以直接通過名稱使用,可以被Editor作為gizmo畫在螢幕上。
9.WebPlayerTemplates
用來替換web build的預設網頁。這個資料夾中的指令碼都不會被編譯。這個資料夾必須作為Assets資料夾的直接子目錄。
10.StreamingAssets
這裡的檔案會被拷貝到build資料夾中,不會修改(移動和網頁版不同,他們會被嵌入到最終build檔案中)。它們的路徑會因平臺而有差異,但都可以通過Application.streamingAssetsPath來訪問。
參考http://docs.unity3d.com/Documentation/Manual/StreamingAssets.htmlhttp://docs.unity3d.com/Documentation/ScriptReference/Application-streamingAssetsPath.html


參考文獻:http://wiki.unity3d.com/index.php/Special_Folder_Names_in_your_Assets_Folder

相關文章