5313人加入学习
(36人评价)
Unity商业游戏底层资源加载框架(Unity2018.1)

更新完成,更新时间2018-12-26

价格 ¥ 350.00
该课程属于 Unity - A计划(永久有效期) 请加入后再学习

 string[] resDependence = AssetDatabase.GetAssetBundleDependencies(abBase.ABName, true);

static void CreateConfig(Dictionary<string, string> validPathABNameDict)
    {
        AssetBundleConfig config = new AssetBundleConfig();
        config.ABList = new List<ABBase>();

        foreach (string path in validPathABNameDict.Keys)
        {
            ABBase abBase = new ABBase();
            abBase.Path = path;
            abBase.Crc = Crc32.GetCRC32(path);
            abBase.ABName = validPathABNameDict[path];
            abBase.AssetName = path.Remove(0, path.LastIndexOf("/") + 1);
            abBase.ABDependence = new List<string>();

            string[] resDependence = AssetDatabase.GetAssetBundleDependencies(abBase.ABName, true);

            foreach (string de in resDependence)
            {
                //Debug.LogFormat($"AB包:{abBase.ABName}  ------ 依赖{de}");
                abBase.ABDependence.Add(de);
            }
            config.ABList.Add(abBase);           
        }

        //写入XML
        .
        .
        .

        //写入二进制
        .
        .
        .

 

[展开全文]

1. 通过代码生成AB包配置表,表中记录着所有资源所在的包名以及与其它包体的依赖关系。

2. 然后优化配置表:把一些永远不可能去动态加载的资源从配置表中移除,只记录可能会动态加载的东西。

 

3.通过一个List来过滤。

[展开全文]

将配置表中不需要动态加载的项目过滤掉

配置表包含项:1,普通资源文件夹内的所有文件2,prefabs文件夹内的所有预制体

 

二进制文件内不必包含文件路径值,以减少包体,路径值在运行时计算de chu

[展开全文]

授课教师

课程特色

下载资料(4)
视频(205)

学员动态