|
今天為大家分享一下,如何快速認(rèn)識(shí)unity3d 常用的一些固有文件夾。 好吧!那么我一起來(lái)探討一下吧!
1. 隱藏文件夾 以.開(kāi)頭的文件夾會(huì)被Unity忽略。在這種文件夾中的資源不會(huì)被導(dǎo)入,腳本不會(huì)被編譯。也不會(huì)出現(xiàn)在Project視圖中。這種文件我們可以在資源瀏覽器的時(shí)候,能找到這些文件。
2. Standard Assets 在這個(gè)文件夾中的腳本最先被編譯。一般是放一些Unity 內(nèi)置的一些資源。 這個(gè)文件夾中的腳本會(huì)被導(dǎo)出到Assembly-CSharp-firstpass,Assembly-UnityScript-firstpass 或 Assembly-Boo-firstpass項(xiàng)目中,依語(yǔ)言而定。 參考http://docs./Documentation/Manual/ScriptCompileOrderFolders.html 。在這個(gè)文件夾中的腳本比其他腳本都要先編譯。將腳本放在這個(gè)文件夾里,就可以用C#腳本來(lái)訪問(wèn)js腳本或其他語(yǔ)言的腳本。
3. Pro Standard Assets 和StandardAssets相同,只不過(guò)里面的文件是給Pro版本的Unity使用的。當(dāng)然它的功能更為的豐富,例如一些高級(jí)內(nèi)置的shader文件,只有在Pro版才能起作用。
4. Editor 以Editor命名的文件夾允許其中的腳本訪問(wèn)UnityEditor的API。如果腳本中使用了在UnityEditor命名空間中的類或方法,它必須被放在名為Editor的文件夾中。Editor文件夾中的腳本不會(huì)在build時(shí)被包含。 在項(xiàng)目中可以有多個(gè)Editor文件夾。[注意:如果在普通的文件夾下,Editor文件夾可以處于目錄的任何層級(jí)。如果在特殊文件夾下,那Editor文件夾必須是特殊文件夾的直接子目錄。]
5. Editor Default Resources 你可以把編輯器用到的一些資源放在這里,比如圖片、文本文件、等等。它和Editor文件夾一樣都不會(huì)被打到最終發(fā)布包里,僅僅用于開(kāi)發(fā)時(shí)使用。你可以直接通過(guò)EditorGUIUtility.Load去讀取該文件夾下的資源,例如: TextAsset text = EditorGUIUtility.Load(“1.txt")as TextAsset;
6. Plugins Plugins文件夾用來(lái)放native插件。它們會(huì)被自動(dòng)包含進(jìn)build中去。注意這個(gè)文件夾只能是Assets文件夾的直接子目錄。 例如: Windows:dll文件; Mac OS X:bundle文件; Linux下:.so文件。 和StandardAssets一樣,這里的腳本會(huì)更早的編譯,并且允許它們被之外的腳本訪問(wèn)。
6.1 Plugins/x86 || x86_64 (一般PC平臺(tái)) 如果為32bit或64bit平臺(tái)創(chuàng)建游戲,那么這個(gè)文件夾下的nativeplugin文件會(huì)被自動(dòng)的包含在游戲build中。如果這個(gè)文件夾不存在,則Unity會(huì)查找Plugins文件夾下的nativepluglins。 如果要?jiǎng)?chuàng)建universalbuild,建議你同時(shí)使用這兩個(gè)文件夾。然后將32bit和64bit的nativeplugins放進(jìn)相應(yīng)的文件夾中。
6.2 Plugins/Android 在這個(gè)文件夾里放入Java.jar文件。用于java語(yǔ)言的plugins。.so文件也會(huì)被包含進(jìn)來(lái)。 官方文檔:http://docs./Documentation/Manual/PluginsForAndroid.html
6.3 Plugins/iOS 在這個(gè)文件夾放入.o、.m 、 .mm 、.c 、.cpp等文件,一般在IOS 平臺(tái)導(dǎo)出對(duì)應(yīng)的文件。 官方文檔: http://docs./Documentation/Manual/PluginsForIOS.html
7. Resources Resources文件夾允許你在腳本中通過(guò)文件路徑和名稱來(lái)訪問(wèn)資源。放在這一文件夾的資源永遠(yuǎn)被包含進(jìn)build中,即使它沒(méi)有被使用。因?yàn)閁nity無(wú)法判斷腳本有沒(méi)有訪問(wèn)了其中的資源。項(xiàng)目中可以有多個(gè)Resources文件夾,因此不建議在多個(gè)文件夾中放同名的資源。一旦build游戲,Resources文件夾中的所有資源被打包進(jìn)游戲存放資源的archive中。這樣在游戲的build中就不存在Resources文件夾了。即使腳本中仍然使用了資源在項(xiàng)目中的路徑。
官方文檔:http://docs./Documentation/Manual/LoadingResourcesatRuntime.html
注意: 當(dāng)資源作為腳本變量被訪問(wèn)時(shí),這些資源在腳本被實(shí)例化后就被加載進(jìn)內(nèi)存。如果資源太大,你可能不希望它被這樣加載。那么你可以將這些大資源放進(jìn)Resources文件夾中,通過(guò)Resources.Load來(lái)加載。當(dāng)不再使用這些資源了,可以通過(guò)Destroy物體,再調(diào)用Resources.UnloadUnusedAssets來(lái)釋放內(nèi)存。
特點(diǎn): (1).文件夾內(nèi)資源打包集成.asset 文件里面,例如一些shader/material/prefab等資源文件; (2).里面的資源只能是只讀,不能動(dòng)態(tài)修改,一般動(dòng)態(tài)的更新的資源不雅放在這個(gè)文件夾內(nèi); (3).通過(guò)主線程加載; (4). Resources.Load();加載資源 Resources.LoadAll();加載所有資源 Resources.LoadAsync();異步加載資源
8. Gizmos Gizmos文件夾存放用Gizmos.DrawIcon方法使用的貼圖、圖標(biāo)資源。放在Gizmos文件夾中的貼圖資源可以直接通過(guò)名稱使用,可以被Editor作為gizmo畫在屏幕上。這里還是要說(shuō)說(shuō)OnDrawGizmos()方法,只要腳本繼承了MonoBehaviour后,并且在編輯模式下就會(huì)每一幀都執(zhí)行它。發(fā)布的游戲肯定就不會(huì)執(zhí)行了,它只能用于在scene視圖中繪制一些小物件。比如要做攝像機(jī)軌跡,那么肯定是要在Scene視圖中做一個(gè)預(yù)覽的線,那么用Gizmos.DrawLine和Gizmos.DrawFrustum就再好不過(guò)了。
9. WebPlayerTemplates 用來(lái)替換webbuild的默認(rèn)網(wǎng)頁(yè)。這個(gè)文件夾中的腳本都不會(huì)被編譯。這個(gè)文件夾必須作為Assets文件夾的直接子目錄。
10. StreamingAssets 這里的文件會(huì)被拷貝到build文件夾中,不會(huì)修改(移動(dòng)和網(wǎng)頁(yè)版不同,他們會(huì)被嵌入到最終build文件中)。它們的路徑會(huì)因平臺(tái)而有差異,但都可以通過(guò)Application.streamingAssetsPath來(lái)訪問(wèn)。 例如:有些游戲?yàn)榱俗屗械馁Y源全部使用assetbundle,會(huì)把一些初始的assetbundle放在StreamingAssets目錄下,StreamingAssets目錄下的資源都是不壓縮的,而且它比較大會(huì)占空間。
就先介紹到這里了,歡迎加我的學(xué)習(xí)交流群:575561285。 |
|
|
來(lái)自: 勤奮不止 > 《游戲引擎unity》