小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

AssetBundles用法基礎

 kiki的號 2017-08-26


第一次研究AssetBundles。本次講如何用AssetBundles打包一個資源。又如何加載到場景里。

從最基礎的入手:

首先將下列腳本放到Asset里,什么都不用管,放進去就OK

注意: 代碼中 BuildPipeline.BuildAssetBundle這個方法在高版本中被廢棄了,我用的是5.3.2f1版本還可以用,5.4就不能了。

[csharp] view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. using UnityEditor;  
  5.   
  6. public class ExportAssetBundles  
  7. {  
  8.   
  9.     [MenuItem("Export / Build AssetBundle From Selection - Track dependencies")]  
  10.   
  11.     static void ExportResource()  
  12.     {  
  13.   
  14.         // Bring up save panel  
  15.   
  16.         string path = EditorUtility.SaveFilePanel("Save Resource", "", "New Resource", "unity3d");  
  17.   
  18.         if (path.Length != 0)  
  19.         {  
  20.   
  21.             // Build the resource file from the active selection.  
  22.   
  23.             Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);  
  24.   
  25.             BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);  
  26.   
  27.             Selection.objects = selection;  
  28.   
  29.         }  
  30.   
  31.     }  
  32.   
  33.     [MenuItem("Export / Build AssetBundle From Selection - No dependency tracking")]  
  34.   
  35.     static void ExportResourceNoTrack()  
  36.     {  
  37.   
  38.         // Bring up save panel  
  39.   
  40.         string path = EditorUtility.SaveFilePanel("Save Resource", "", "New Resource", "unity3d");  
  41.   
  42.         if (path.Length != 0)  
  43.         {  
  44.   
  45.             // Build the resource file from the active selection.  
  46.   
  47.             BuildPipeline.BuildAssetBundle(Selection.activeObject, Selection.objects, path);  
  48.   
  49.         }  
  50.   
  51.     }  
  52.   
  53. }  


當上面代碼放入項目里時會看到在菜單里有一個Export的東西出現(xiàn),里面有兩項:第一個是選擇打包文件,第二個是打包所有文件。

此文用來講解選擇一個東西打包(一般來說要被打包的東西都是預設prefab)。然后我們新建一個cube在場景里,把他做成預設物體命名為89。

因為window的本地加載都是在StreamingAssets文件里加載的(其他平臺不一樣),所以我們在Asset下手動新建一個StreamingAssets文件夾。

如下圖:



來看一下我們的cube現(xiàn)在的位置:(目的是用來對比一會加載進來的位置,其實位置是不會改變的)



之后就在project里選擇89然后進行打包,選擇路徑(路徑很重要,加載時要用,看下圖)會彈出這個窗口,然后為89命名為666,之后會被保存在StreaningAssets文件夾里。(下圖中由于搜狗輸入法截圖時輸入中文有問題所以只能寫英文了)



打包之后刷新一下unity會在打包的文件里看到剛打包的東西:


至此,我們的打包功能已經(jīng)完成。


..............................................接下來講解如何加載。..........................

以下方法是windows電腦加載的方法(安卓iOS與PC互相都不一樣):

把下列腳本隨便綁定到一個物體上就OK(該代碼是用來加載物體了)

[csharp] view plain copy
  1. using UnityEngine;  
  2.   
  3.   
  4. using System.Collections;  
  5.   
  6.   
  7. using System.IO;  
  8.   
  9.   
  10. public class LoadUnity3d : MonoBehaviour  
  11.   
  12.   
  13. {  
  14.   
  15.   
  16.     // Use this for initialization  
  17.   
  18.   
  19.     void Start()  
  20.   
  21.   
  22.     {  
  23.   
  24.   
  25.         StartCoroutine(LoadScene());  
  26.   
  27.   
  28.     }  
  29.   
  30.   
  31.     // Update is called once per frame  
  32.   
  33.   
  34.     void Update()  
  35.   
  36.   
  37.     {  
  38.   
  39.   
  40.     }  
  41.   
  42.   
  43.     IEnumerator LoadScene()  
  44.   
  45.   
  46.     {  
  47.         //文件路徑,也就是我們打包的那個  
  48.          
  49.         WWW www = new WWW("file:///"+ "C:/Users/Desktop/new/New Unity Project/Assets/" + "/StreamingAssets/666.unity3d");  
  50.   
  51.   
  52.         yield return www;  
  53.   
  54.   
  55.         Instantiate(www.assetBundle.mainAsset);  
  56.   
  57.   
  58.     }  
  59.   
  60.   
  61. }  

注:要更換文件路徑只能更換"C:/Users/Desktop/new/New Unity Project/Assets/",在window里本地加載必須在StreamingAssets文件里。


之后我們運行unity看到在場景里加載進了一個cube而且位置和之前是一樣的。

本文許多代碼并無優(yōu)化也不嚴謹,目的是為了讓剛接觸AssetBundles的小伙伴能夠更清晰的看到打包實現(xiàn)過程和加載過程。也就是說老司機請繞行!呵呵噠!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多