乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      AssetBundles用法基礎(chǔ)

       kiki的號 2017-08-26


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

      從最基礎(chǔ)的入手:

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

      注意: 代碼中 BuildPipeline.BuildAssetBundle這個(gè)方法在高版本中被廢棄了,我用的是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. }  


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

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

      因?yàn)?/strong>window的本地加載都是在StreamingAssets文件里加載的(其他平臺不一樣),所以我們在Asset下手動新建一個(gè)StreamingAssets文件夾。

      如下圖:



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



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



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


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


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

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

      把下列腳本隨便綁定到一個(gè)物體上就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.         //文件路徑,也就是我們打包的那個(gè)  
      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文件里。


      之后我們運(yùn)行unity看到在場景里加載進(jìn)了一個(gè)cube而且位置和之前是一樣的。

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多