AssetsBundle

Posted aeboke

tags:

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

简单的ab生成代码

using UnityEngine;
using UnityEditor;
using System.IO;
public class CreatAssestBundle  {

    static string MyAssestPath = Application.dataPath + "/MyStreamingAssets";

    [MenuItem("AB/AssestBundle文件生成")]
    static void CreatAB()
    {
        CreatFolder();
        //第一个  打包生成文件路径  第二个  不用管   第三个打包平台
        BuildPipeline.BuildAssetBundles
            (
            MyAssestPath,
            BuildAssetBundleOptions.None,
            BuildTarget.StandaloneWindows
            );
        //文件夹刷新
        AssetDatabase.Refresh();
    }

    /// <summary>
    /// 路径处理
    /// </summary>
    static void CreatFolder()
    {
        if (Directory.Exists(MyAssestPath))
        {
            Directory.Delete(MyAssestPath, true);
        }
        Directory.CreateDirectory(MyAssestPath);
    }

}

 

 

ab资源加载代码

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

public class CreatAB : MonoBehaviour
{

    public UnityEngine.UI.RawImage m_image;

    IEnumerator Start()
    {
        //AssestBundle 路径
        string MyAssestPath = "file://" + Application.dataPath + "/MyStreamingAssets/text";

        //using (WWW www = new WWW(MyAssestPath))
        using (WWW www = WWW.LoadFromCacheOrDownload(MyAssestPath, 0))
        {
            yield return www;
            //获取AssestBundle
            AssetBundle AB = www.assetBundle;
            //解压AB中想要获取的资源
            Texture tex = AB.LoadAsset<Texture>("QQ图片20181031155650");
            Debug.Log(tex.name);
            m_image.texture = tex;
            //false 释放无用资源   true  释放所有资源   
            AB.Unload(false);
        }

    }


}

 






































































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