AssetBundle学习笔记

Posted battly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AssetBundle学习笔记相关的知识,希望对你有一定的参考价值。

二.AssetBundle的加载

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoadFromAB : MonoBehaviour {

    // Use this for initialization
    void Start ()
    {
        AssetBundle ab2 = AssetBundle.LoadFromFile("AssetBundles/cube.unity3d");
        AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/share.unity3d");        
        GameObject wallprefab = ab2.LoadAsset<GameObject>("Cube");
        Instantiate(wallprefab);
    }
    
    // Update is called once per frame
    void Update () {
        
    }
}

在使用AssetBundle包的时候先把资源加载到内存当中。官方文档中讲述的是,先加载贴图之类的包,然后加载物体资源包,但是经过实际测试,这个加载实际上是不分先后的,这个就略屌了。为了测试是否在物体实例化出来以后贴图是否能够找到并打上,我们改写代码测试一下。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoadFromAB : MonoBehaviour {

    // Use this for initialization
    void Start ()
    {
        AssetBundle ab2 = AssetBundle.LoadFromFile("AssetBundles/cube.unity3d");        
        GameObject wallprefab = ab2.LoadAsset<GameObject>("Cube");
        Instantiate(wallprefab);
        //AssetBundle.LoadFromFile("AssetBundles/share.unity3d");
    }
    
    // Update is called once per frame
    void Update ()
    {
        if (Input.GetMouseButtonDown(0))
        {
            AssetBundle.LoadFromFile("AssetBundles/share.unity3d");
            Debug.Log("加载成功");
        }
    }
}

结果就是在鼠标左键按下的时候,物体贴图成功的加载了出来。

但是为了避免发生不可预料的结果,建议还是按照官方文档中加载步骤进行

 

以上是关于AssetBundle学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

AssetBundle学习笔记

学习笔记:python3,代码片段(2017)

Unity AssetBundle笔记

小松教你手游开发unity系统模块开发Unity Assetbundle打包笔记

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

Unity3D之Mecanim动画系统学习笔记:Mecanim动画的资源加载相关