1.Editor
Editor文件夾可以在根目錄下,也可以在子目錄里,只要名子叫Editor就可以。比如目錄:/xxx/xxx/Editor? 和 /Editor 是一樣的,無論多少個叫Editor的文件夾都可以。Editor下面放的所有資源文件或者腳本文件都不會被打進發(fā)布包中,并且腳本也只能在編輯時使用。
2.Editor Default Resources
Editor Default Resources注意中間是有空格的,它必須放在Project視圖的根目錄下,如果你想放在/xxx/xxx/Editor Default Resources 這樣是不行的。你可以把編輯器用到的一些資源放在這里,比如圖片、文本文件、等等。它和Editor文件夾一樣都不會被打到最終發(fā)布包里,僅僅用于開發(fā)時使用。你可以直接通過EditorGUIUtility.Load去讀取該文件夾下的資源。
3.Gizmos
我覺得這個文件夾其實沒什么用處,如下代碼所示它可以在Scene視圖里給某個坐標(biāo)繪制一個icon。它的好處是可以傳一個Vecotor3 作為圖片顯示的位置。 參數(shù)2就是圖片的名子,當(dāng)然這個圖片必須放在Gizmos文件夾下面。
void OnDrawGizmos() {
? ? Gizmos.DrawIcon(transform.position, "0.png", true);
}
如果只想掛在某個游戲?qū)ο笊砩?,那么在Inspecotr里面就可以直接設(shè)置。
說說OnDrawGizmos()方法,只要腳本繼承了MonoBehaviour后,并且在編輯模式下就會每一幀都執(zhí)行它。發(fā)布的游戲肯定就不會執(zhí)行了,它只能用于在scene視圖中繪制一些小物件。比如要做攝像機軌跡,那么肯定是要在Scene視圖中做一個預(yù)覽的線,那么用Gizmos.DrawLine 和Gizmos.DrawFrustum就再好不過了。
4.Plugins
如果做手機游戲開發(fā)一般 andoird 或者 ios 要接一些sdk 可以把sdk依賴的庫文件 放在這里,比如 .so .jar .a 文件。這樣打完包以后就會自動把這些文件打在你的包中。
5.Resources
可以在根目錄下,也可以在子目錄里,只要名子叫Resources就可以。比如目錄:/xxx/xxx/Resources? 和 /Resources 是一樣的,無論多少個叫Resources的文件夾都可以。Resources文件夾下的資源不管你用還是不用都會被打包進.apk或者.ipa
Resource.Load :編輯時和運行時都可以通過Resource.Load來直接讀取。
Resources.LoadAssetAtPath() :它可以讀取Assets目錄下的任意文件夾下的資源,它可以在編輯時或者編輯器運行時用,但是它不能在真機上用,它的路徑是”Assets/xx/xx.xxx” 必須是這種路徑,并且要帶文件的后綴名。
AssetDatabase.LoadAssetAtPath():它可以讀取Assets目錄下的任意文件夾下的資源,它只能在編輯時用。它的路徑是”Assets/xx/xx.xxx” 必須是這種路徑,并且要帶文件的后綴名。
我覺得在電腦上開發(fā)的時候盡量來用Resource.Load() 或者 Resources.LoadAssetAtPath() ,假如手機上選擇一部分資源要打assetbundle,一部分資源Resource.Load().那么在做.apk或者.ipa的時候 現(xiàn)在都是用腳本來自動化打包,在打包之前 可以用AssetDatabase.MoveAsset()把已經(jīng)打包成assetbundle的原始文件從Resources文件夾下移動出去在打包,這樣打出來的運行包就不會包行多余的文件了。打完包以后再把移動出去的文件夾移動回來。
6. StreamingAssets
這個文件夾下的資源也會全都打包在.apk或者.ipa 它和Resources的區(qū)別是,Resources會壓縮文件,并且它是一個只讀的文件夾,就是程序運行時只能讀不能寫。它在各個平臺下的路徑是不同的,不過你可以用Application.streamingAssetsPath 它會根據(jù)當(dāng)前的平臺選擇對應(yīng)的路徑。
有些游戲為了讓所有的資源全部使用assetbundle,會把一些初始的assetbundle放在StreamingAssets目錄下,運行程序的時候在把這些assetbundle拷貝在Application.persistentDataPath目錄下,如果這些assetbundle有更新的話,那么下載到新的assetbundle在把Application.persistentDataPath目錄下原有的覆蓋掉。
因為Application.persistentDataPath目錄是應(yīng)用程序的沙盒目錄,所以打包之前是沒有這個目錄的,直到應(yīng)用程序在手機上安裝完畢才有這個目錄。
StreamingAssets目錄下的資源都是不壓縮的,所以它比較大會占空間,比如你的應(yīng)用裝在手機上會占用100M的容量,那么你又在StreamingAssets放了一個100M的assetbundle,那么此時在裝在手機上就會在200M的容量。
7:Hidden文件夾中的文件在unity導(dǎo)入資源時會被忽略,用于存放與unity工程無關(guān)的數(shù)據(jù)。不會被打包。
Assets文件夾是unity項目中放置游戲資源的主文件夾。該文件夾中的內(nèi)容將直接反應(yīng)在編輯器的Project視口中。許多系統(tǒng)API基于該文件夾。
Editor 文件夾中的腳本主要用來擴展unity編輯器的功能方便開發(fā)。這些腳本將不會打包進最終發(fā)布的游戲中。項目中可以使用多個 Editor 文件夾。Editor文件夾不會被打到最終發(fā)布包里。
Editor Default Resources文件夾用于存放加載Editor文件夾中腳本拓展功能時使用的資源。它必須放在Project視圖的根目錄下,它和Editor文件夾一樣都不會被打到最終發(fā)布包里。
Gizmos文件夾用于存放Unity的Gizmos類在Scene視口中繪制圖像用來顯示設(shè)計細節(jié)時使用的圖像文件。該文件夾下資源僅在Scenes場景中使用,不會被打包。
Plugins 文件夾中存放用于擴展unity功能的插件(多為C/C++寫成的原生動態(tài)鏈接庫(DLLs))或者移動端SDK依賴的庫文件。打包時會自動把有依賴的文件打在包中。
Resources文件夾用于存放使用Resources.Load 函數(shù)動態(tài)加載的資源。打包時其中的文件會被Unity壓縮,文件可讀寫。
StreamingAssets文件夾用于存放不需要經(jīng)過Unity處理,保留原本文件格式的流文件。打包時其中的文件不會被Unity壓縮,文件只讀。
Hidden文件夾中的文件在unity導(dǎo)入資源時會被忽略,用于存放與unity工程無關(guān)的數(shù)據(jù)。不會被打包。