【小松教你手遊開發】【unity實用技能】unity所有特殊檔案夾的用途(轉自雨松momo)

來源:互聯網
上載者:User

標籤:unity實用技能

這裡列舉出手遊開發中用到了所有特殊檔案夾。


Unity3D研究院之手遊開發中所有特殊的檔案夾 - 雨松MOMO程式研究院

1.Editor

Editor檔案夾可以在根目錄下,也可以在子目錄裡,只要名子叫Editor就可以。比如目錄:/xxx/xxx/Editor 和 /Editor 是一樣的,無論多少個叫Editor的檔案夾都可以。Editor下面放的所有資源檔或者指令檔都不會被打進發布包中,並且指令碼也只能在編輯時使用。一般呢會把一些工具類的指令碼放在這裡,或者是一些編輯時用的DLL。 比如我們現在要做類似技能編輯器,那麼編輯器的代碼放在這裡是再好不過了,因為實際運行時我們只需要編輯器產生的檔案,而不需要編輯器的核心代碼。

2.Editor Default Resources

Editor Default Resources注意中間是有空格的,它必須放在Project視圖的根目錄下,如果你想放在/xxx/xxx/Editor Default Resources 這樣是不行的。你可以把編輯器用到的一些資源放在這裡,比片、文字檔、等等。它和Editor檔案夾一樣都不會被打到最終發布包裡,僅僅用於開發時使用。你可以直接通過EditorGUIUtility.Load去讀取該檔案夾下的資源。

TextAsset text = EditorGUIUtility.Load("test.txt")as TextAsset;Debug.Log(text.text);

我覺得這個檔案夾其實沒什麼用處,如下代碼所示它可以在Scene視圖裡給某個座標繪製一個icon。它的好處是可以傳一個Vecotor3 作為圖片顯示的位置。 參數2就是圖片的名子,當然這個圖片必須放在Gizmos檔案夾下面。

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

如果只想掛在某個遊戲對象身上,那麼在Inspecotr裡面就可以直接設定。。

Unity3D研究院之手遊開發中所有特殊的檔案夾 - 雨松MOMO程式研究院 - 2
這裡還是要說說OnDrawGizmos()方法,只要指令碼繼承了MonoBehaviour後,並且在編輯模式下就會每一幀都執行它。發布的遊戲肯定就不會執行了,它只能用於在scene視圖中繪製一些小物件。比如要做攝像機軌跡,那麼肯定是要在Scene視圖中做一個預覽的線,那麼用Gizmos.DrawLine 和Gizmos.DrawFrustum就再好不過了。

4.Plugins

如果做手機遊戲開發一般 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” 必須是這種路徑,並且要帶檔案的尾碼名。

我覺得在電腦上開發的時候盡量來用Resource.Load() 或者 Resources.LoadAssetAtPath() ,假如手機上選擇一部分資源要打assetbundle,一部分資源Resource.Load().那麼在做.apk或者.ipa的時候 現在都是用指令碼來自動化打包,在打包之前 可以用AssetDatabase.MoveAsset()把已經打包成assetbundle的原始檔案從Resources檔案夾下移動出去在打包,這樣打出來的運行包就不會包行多餘的檔案了。打完包以後再把移動出去的檔案夾移動回來。

  1. StreamingAssets

這個檔案夾下的資源也會全都打包在.apk或者.ipa 它和Resources的區別是,Resources會壓縮檔,但是它不會壓縮原封不動的打包進去。並且它是一個唯讀檔案夾,就是程式運行時只能讀 不能寫。它在各個平台下的路徑是不同的,不過你可以用Application.streamingAssetsPath 它會根據當前的平台選擇對應的路徑。

有些遊戲為了讓所有的資源全部使用assetbundle,會把一些初始的assetbundle放在StreamingAssets目錄下,運行程式的時候在把這些assetbundle拷貝在Application.persistentDataPath目錄下,如果這些assetbundle有更新的話,那麼下載到新的assetbundle在把Application.persistentDataPath目錄下原有的覆蓋掉。

因為Application.persistentDataPath目錄是應用程式的沙箱目錄,所以打包之前是沒有這個目錄的,直到應用程式在手機上安裝完畢才有這個目錄。

StreamingAssets目錄下的資源都是不壓縮的,所以它比較大會佔空間,比如你的應用裝在手機上會佔用100M的容量,那麼你又在StreamingAssets放了一個100M的assetbundle,那麼此時在裝在手機上就會在200M的容量。

今天就到這裡了,如果有問題歡迎大家與@雨松MOMO一起討論。嘿嘿。

【小松教你手遊開發】【unity實用技能】unity所有特殊檔案夾的用途(轉自雨松momo)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.