【Unity基礎知識之三】Unity Assets目錄下的特殊文件夾名稱

Unity3D的特殊目錄名稱

 
Unity預留了一些目錄名稱,這些目錄有着特殊的含義。比較重要的有:
  • Resources
    這個目錄下的全部文件都會被打包到發佈版本中,程序能夠經過文件路徑來訪問它們。這個太有用了,像RPG遊戲裏面不少策劃編輯的數據均可以保存到這裏。可使用UnityEngine.Resources.Load()方法加載,相關的類還有TextAsset。
    詳細的文檔:http://docs.unity3d.com/Manual/LoadingResourcesatRuntime.html
  • Editor 
    在這裏能夠存放一些編輯器擴展腳本,這個目錄裏面的腳本可使用namespace UnityEditor。對於RPG項目來講,常常有上百個怪物這種編輯需求,若是每個都要在編輯器裏面拖拖拉拉來建立Prefab,那豈不是很累?能夠寫一個自動生成Prefab的腳本,在全部資源導入以後,自動建立Prefab供遊戲運行時調用。
  • Plugins
    這裏面就是放Native插件的,而引入的其餘包沒必要要放在這裏。它應該爲目標平臺創建子目錄:"Plugins/Android"、"Plugins/iOS"等。
這些目錄還涉及到腳本的編譯順序,詳細可參見手冊: http://docs.unity3d.com/Manual/ScriptCompileOrderFolders.html
還有其餘一些更全面的特殊目錄名稱列表,可參見WIKI: http://wiki.unity3d.com/index.php/Special_Folder_Names_in_your_Assets_Folder

 

 

-------------------------------------------------------------------------------------------------------------------------------------------php

1. 隱藏文件夾 html

以.開頭的文件夾會被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。 

java

參考文獻:web

http://wiki.unity3d.com/index.php/Special_Folder_Names_in_your_Assets_Folder 編輯器

http://blog.csdn.net/neil3d/article/details/38435507ui

相關文章
相關標籤/搜索