Unity中的那些特殊文件夾

1. Resources

  • 你可以將多個Resources文件夾放在Assets目錄下的任何位置痢士,但是不建議這樣做。
  • 該文件夾下的所有資源將會被壓縮并轉(zhuǎn)化成二進(jìn)制文件鳞贷,然后再對其進(jìn)行加密坯汤,最終被打到發(fā)布包中,但是在發(fā)布包中Resources文件夾已經(jīng)不復(fù)存在悄晃,所以你只能通過Resources.Load來加載資源玫霎。
  • Resources為只讀文件夾,即不能動態(tài)修改妈橄。所以不要將動態(tài)更新的資源放在這里。
  • 該文件夾下不應(yīng)該放太多資源翁脆,因為它的大小與啟動速度有關(guān)系眷蚓。
  • 如果該文件夾是Editor的子文件夾,那么其中的資源會在打包的時候從中剝離反番。

Resources.Load ():編輯器模式下和真機(jī)上都可以使用沙热。路徑為Resources文件夾下的相對路徑叉钥,忽略后綴名。
Resources.LoadAssetAtPath ():只能在編輯器模式下使用篙贸,但是可以讀取Assets目錄下任意文件夾中的資源投队。路徑形式為:Assets/xx/xx.xxx,并且要帶后綴爵川。
Resources.UnloadAsset ():卸載指定的資源敷鸦,不包括Prefab,CPU開銷星薰薄扒披;
Resources.UnloadUnusedAssets ():一次性卸載所有未被引用的資源,即使是通過AssetBundle加載的資源也可以被卸載圃泡,不包括Prefab碟案,CPU開銷大, 所以盡量避免在運(yùn)行中調(diào)用該接口颇蜡。

2. Editor

  • 你可以在Assets文件夾下的任意位置放置多個名叫Editor的文件夾价说,既可以放置在Assets根目錄下,也可以放置在其他子目錄中风秤。
  • 如果把Editor文件夾放置在特殊文件夾下的話則必須放在第一層目錄下鳖目,否則不會生效;如果是普通文件夾的話則可以放置在任意層級下唁情。
  • 放置在Editor文件夾下的腳本會被視為編輯器腳本疑苔,而不是運(yùn)行時腳本,這些腳本主要用來擴(kuò)展編輯器的功能以方便我們進(jìn)行開發(fā)甸鸟,因此我們一般會把一些工具類的腳本放在這里惦费,或者是一些在編輯器模式下才會用到的DLL文件。
  • Editor文件夾下的所有腳本與資源都不會被打到最終的發(fā)布包中抢韭。
  • Editor文件夾下的腳本不允許繼承MonoBehaviour成為Gameobject對象的組件薪贫。

3. Editor Default Resources

  • 該文件夾必須放在Assets根目錄下,且整個工程只能擁有一個刻恭。
  • 它的作用與Resources文件夾類似瞧省,只不過這里面存放的資源只能在編輯器模式下使用,它與Editor文件夾一樣都不會被打到最終的發(fā)布包中鳍贾。
  • 你可以用EditorGUIUtility.Load來加載資源鞍匾。同樣可以通過Destroy來刪除資源,再通過調(diào)用EditorUtility.UnloadUnusedAssetsImmediate來釋放加載資源所占用的內(nèi)存骑科。

Material mat = EditorGUIUtility.Load ("HandleMaterial.mat") as Material橡淑;

4. Plugins

  • 該文件夾必須放在Assets根目錄下,且整個工程只能擁有一個咆爽。
  • 你可以將插件放在Plugins文件夾中來擴(kuò)展Unity的特性梁棠,這些插件通常是由C/C++編寫的原生DLL文件置森。
  • 在Android或iOS平臺,你可以把要接的一些第三方SDK依賴的庫文件(例如:.jar .so .a 文件)放在這里符糊;在Windows平臺凫海,插件為 .dll 類型文件;在Mac平臺男娄,插件為 .bundle 類型文件行贪;在Linux平臺,插件為 .so 類型文件沪伙。
  • Plugins中的文件將會被自動打到最終的發(fā)布包中瓮顽。
  • Plugins中的腳本總是會被更早的編譯,因此允許它們被其他文件夾中的腳本調(diào)用围橡。

5. Plugins/x86

  • 當(dāng)你制作一個32位或者通用(32位和64位)平臺版本的時候暖混,如果這個子文件夾存在,那么在這個子文件夾里的插件將會被自動打包到發(fā)布包中翁授,如果這個子文件夾不存在拣播,那么Unity將會轉(zhuǎn)而到父文件夾Plugins中去查找插件。

6. Plugins/x86_64

  • 當(dāng)你制作一個64位或者通用(32位和64位)平臺版本的時候收擦,如果這個子文件夾存在贮配,那么在這個子文件夾里面的插件將會被自動打包到發(fā)布包中,如果這個子文件夾不存在塞赂,那么Unity將會轉(zhuǎn)而到父文件夾Plugins中去查找插件泪勒。
  • 如果你在制作一個通用平臺的版本,那么建議你同時創(chuàng)建x86和x86_64這兩個文件夾宴猾,并且在這里面放入相應(yīng)32位和64位版本的插件圆存。

7. Plugins/Android

  • 在該文件夾中放入任何需要被Android工程包含的.jar文件(Java插件使用)或者.so文件(Android NDK插件使用),更多內(nèi)容可以參考:PluginsForAndroid (例如:讀取通訊錄仇哆、微信分享等需要調(diào)用原生Java功能接口的jar包編譯后放在此文件夾下)

8. Plugins/iOS

  • 一個受限制的可自動添加(作為符號鏈接)任何.a沦辙、.m、.mm讹剔、.c 或者 .cpp 文件到生成的Xcode工程里面的方法油讯。更多內(nèi)容可以參考:PluginsForIOS

  • 如果你想要在自動添加文件到Xcode工程的這個過程中有有更多的可控性的話,你可以使用PostprocessBuildPlayer這個功能延欠,而且使用這個功能也并不要求你將相應(yīng)的處理文件放入到 Plugins/iOS文件夾中陌兑。更多可以參考:BuildPlayerPipeline

9. StreamingAssets

  • 你只能擁有一個StreamingAssets文件夾,且它必須放在Assets根目錄下由捎。
  • 它是一個只讀文件夾诀紊,不會被壓縮,主要用來存放二進(jìn)制文件隅俘。
  • 該文件夾中的內(nèi)容會被原封不動的拷貝到發(fā)布包中的同名文件夾下(移動平臺與網(wǎng)頁版除外邻奠,它會被嵌入到最終的發(fā)布包中),它的路徑在不同平臺上會有所差異为居,但是都可以統(tǒng)一用Application.streamingAssetsPath(請看下面)來獲取它們碌宴。

Win: D:/Project目錄/Assets/StreamingAssets
Mac: /Users/用戶名/Desktop/Project目錄/Assets/StreamingAssets
Android: jar:file:///data/app/com.Company.ProductName-1/base.apk!/assets
iOS:/var/mobile/containers/Bundle/Application/xx-xx-xx-xxx/xx.app/Data/Raw

  • 不同的加載方式又會導(dǎo)致在各個平臺上的路徑有所不同。

沒有前綴蒙畴,使用類似AssetBundle.LoadFromFile這種本地加載的方式:

安卓平臺:string path = Application.dataPath + "/assets";
其他平臺:string path = Application.streamingAssetsPath;

必須要加前綴贰镣,使用類似WWW這種網(wǎng)絡(luò)加載的方式:

安卓平臺:string path = Application.streamingAssetsPath;
其他平臺:string path = "file://" + Application.streamingAssetsPath;

  • 有些項目為了讓所有的資源都使用AssetBundle,會把一些初始的AssetBundle文件放到該文件夾下膳凝,然后運(yùn)行的時候再把這些AssetBundle文件拷貝到沙盒目錄下碑隆,如果這些AssetBundle文件有更新的話,再把沙盒目錄中的這些文件覆蓋掉蹬音。

10. PersistentDataPath

  • 該目錄是應(yīng)用程序的沙盒目錄上煤,只有在應(yīng)用程序安裝后才會出現(xiàn)。但是在Android平臺既可以是應(yīng)用程序的沙盒目錄著淆,也可以是SD卡劫狠。在打Android包的時候,PlayerSettings下的Other Settings選項卡中有一個叫Write Access的選項永部,可以設(shè)置它的路徑是沙盒目錄還是SD卡独泞。
  • 該目錄雖然支持讀寫,但是只有在應(yīng)用程序運(yùn)行時才能對其進(jìn)行操作苔埋。因此你要是想提前將數(shù)據(jù)放入這個目錄中是不可行的。
  • 該目錄可以在電腦上進(jìn)行查看组橄、修改、清理晨炕,從而方便我們進(jìn)行調(diào)試。
  • 該目錄適合存放一些可持久化的數(shù)據(jù)文件瓮栗,例如從網(wǎng)絡(luò)上下載的AssetBundle文件可以存放在這里削罩。下面是該目錄在各平臺上的路徑。

Win:C:\Users\用戶名\AppData\LocalLow\company name\product name
Mac:/Users/用戶名/Library/Application Support/company name/Project目錄
Android:/data/data/com.Company.ProductName/files
iOS:/var/mobile/Containers/Data/Application/xx-xx-xx-xx-xxx/Documents

11. DataPath

  • 應(yīng)用程序存放數(shù)據(jù)文件所在的文件夾的路徑弥激,只讀愿阐。

Win:D:/Project目錄/Assets
Mac:/Users/用戶名/Desktop/Project目錄/Assets
Android:/data/app/com.Company.ProductName-1/base.apk!
iOS:/var/mobile/Containers/Bundle/Application/xx-xx-xx-xx-xxx/xx.app/Data

12. TemporaryCachePath

  • 臨時數(shù)據(jù)的緩沖目錄微服,只讀。對于同一平臺缨历,在不同程序中調(diào)用此屬性時以蕴,其返回值是相同的,但是在不同的運(yùn)行平臺下丛肮,其返回值是不一樣的。

Win:C:/Users/用戶名/AppData/Local/Temp/company name/product name
Mac:/var/folders/xx/xxxxxxxxxx/T/company name/product name
Android:/storage/emulated/0/Android/data/com.Company.ProductName/cache(Android4.2版本之后添加了一種“新用戶”的特性焚廊,0代表當(dāng)前設(shè)備擁有者)
iOS:/var/mobile/Containers/Data/Application/xx-xx-xx-xx-xxx/Library/Caches

13. Gizmos

  • 你只能擁有一個Gizmos文件夾习劫,而且它必須放在項目的Assets根目錄中。
  • 在編輯器模式下你可以將圖標(biāo)或貼圖添加到場景視圖中诽里。
  • 你可以傳遞一個Vector3坐標(biāo)與一個相對路徑名稱來繪制這些圖像。

void OnDrawGizmos ()
{
  Gizmos.DrawIcon (transform.position, "Icon.png", true);
}

參考:

  1. https://docs.unity3d.com/Manual/SpecialFolders.html
  2. http://tieba.baidu.com/p/3233940618
  3. https://www.xuanyusong.com/archives/3229
  4. https://blog.csdn.net/lodypig/article/details/51872595
  5. http://www.cnblogs.com/murongxiaopifu/p/4199541.html?utm_source=tuicool&utm_medium=referral
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市豌汇,隨后出現(xiàn)的幾起案子拒贱,更是在濱河造成了極大的恐慌宛徊,老刑警劉巖逻澳,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異苞氮,居然都是意外死亡瓤逼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門贷帮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诱告,“玉大人,你說我怎么就攤上這事锄禽∏北兀” “怎么了沟绪?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵绽慈,是天一觀的道長辈毯。 經(jīng)常有香客問我,道長钝凶,這世上最難降的妖魔是什么唁影? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮哟沫,結(jié)果婚禮上锌介,老公的妹妹穿的比我還像新娘。我一直安慰自己孔祸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惶室,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捣作。 梳的紋絲不亂的頭發(fā)上鹅士,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機(jī)與錄音也拜,去河邊找鬼。 笑死慢哈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滥沫。 我是一名探鬼主播键俱,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼编振,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了踪央?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤健无,失蹤者是張志新(化名)和其女友劉穎魁莉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畦浓,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡讶请,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年屎媳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片风响。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡丹禀,死狀恐怖鞋怀,靈堂內(nèi)的尸體忽然破棺而出持搜,到底是詐尸還是另有隱情,我是刑警寧澤残腌,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布贫导,位于F島的核電站,受9級特大地震影響邑滨,放射性物質(zhì)發(fā)生泄漏钱反。R本人自食惡果不足惜匣距,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尚卫。 院中可真熱鬧尸红,春花似錦、人聲如沸外里。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墩莫。三九已至,卻和暖如春灌侣,著一層夾襖步出監(jiān)牢的瞬間裂问,已是汗流浹背牛柒。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工慨菱, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闪彼。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓协饲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親描馅。 傳聞我的和親對象是個殘疾皇子而线,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容