Unity AB包

1、参考资料

https://gameinstitute.qq.com/community/detail/100031
https://www.cnblogs.com/Roz-001/p/11237198.html

2、生成AB包

首先给资产文件指定包名,然后代码生成对应的ab包。
同一AB包内的资产名称不能重复

using System.IO;
using UnityEditor;
using UnityEngine;

public class AssetBundlesBuilder
{
    const string _assetBundleDirectory = "Assets/AssetBundles";

    [MenuItem("Assets/Build AssetBundles")]
    static void BuildAllAssetBundles()
    {
        if (!Directory.Exists(_assetBundleDirectory))
        {
            Directory.CreateDirectory(_assetBundleDirectory);
        }

        BuildPipeline.BuildAssetBundles(_assetBundleDirectory, BuildAssetBundleOptions.None,
            BuildTarget.StandaloneWindows);
    }
}

3、加载AB包中的资产

更多加载方式见参考连接。可以自行构建包和文件路径的对应关系表实现根据项目中的文件路径加载AB包中的资源。

using System.IO;
using UnityEditor;
using UnityEngine;

public class ABLoader
{
    AssetBundle _ab;

    public ABLoader(string abPath)
    {
        _ab = AssetBundle.LoadFromFile(abPath);
    }

    public GameObject Load(string name)
    {
        GameObject go = _ab.LoadAsset<GameObject>(name);
        return go;
    }
}
using System;
using UnityEngine;


public class Test : MonoBehaviour
{
    void OnEnable()
    {
        var abLoader = new ABLoader("Assets/AssetBundles/objs");
        var go = abLoader.Load("AB_Cube");
        GameObject.Instantiate(go);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原因说明: 游戏中资源全部打包ab包进行加载。由于对ab包相应规则理解不正确,可能会导致资源重复被打包。下面介绍下...
    丛小胖有个锤子阅读 4,129评论 0 4
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,770评论 1 180
  • 感谢各位大佬的文章,实在学到许多。 续集:知识集_续[https://www.jianshu.com/p/a6b8...
    asadadasw阅读 1,863评论 1 4
  • 环境:mac+unity2018.4.7+jenkins自动化打包 打包可能引起unity崩溃的几种情况 如下图直...
    飞翔的蜗牛235阅读 2,263评论 0 1
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,599评论 16 22