コード例 #1
0
    /// <summary>
    /// 生成依赖关系的文件
    /// </summary>
    static void MakeIAssetBundleManifest()
    {
        //var path = m_Assets + "/Manifest.xml";
        //if (File.Exists(path)) {
        //    File.Delete(path);
        //}
        mIManifest = new IAssetBundleManifest();
        var dic = new Dictionary <string, string[]>();

        foreach (var abName in tempBuilds.Keys)
        {
            var build  = tempBuilds[abName];
            var dpList = new List <string>();
            foreach (var path in build.assetNames)
            {
                var depends = AssetDatabase.GetDependencies(path);

                foreach (var dpPath in depends)
                {
                    if (dpPath.Contains(".cs") ||
                        dpPath.Contains(".mdb") ||
                        dpPath.Contains(".dll"))
                    {
                        continue;
                    }
                    if (path.Equals(dpPath))
                    {
                        continue;
                    }

                    if (mPath2ABName.ContainsKey(dpPath))
                    {
                        dpList.Add(mPath2ABName[dpPath]);
                    }
                    else
                    {
                        //   Debug.LogError("错误!!! 该依赖资源没有加入打包 " + dpPath);
                    }
                }
            }
            dic[abName] = dpList.ToArray();
        }
        mIManifest.SetAsstDpNames(dic);
        mIManifest.Serializate(m_RootDirectory, "Manifest");
        // mIManifest.Serializate(Application.dataPath + "/AssetData", "Manifest");
        // SetAsset("Manifest", path);
    }