少年修仙传客户端代码仓库
client_Wu Xijin
2018-10-26 82931aabaaa3e479bc04e11630a77cd9c9dd5fe3
Core/ResModule/AssetBundle/AssetBundleUtility.cs
@@ -15,6 +15,81 @@
    public bool initialized { get; private set; }
    public bool initializedUIAssetBundle { get; private set; }
    public void InitBuiltInAsset()
    {
        var path = AssetVersionUtility.GetBuiltInAssetFilePath("builtin_assetbundle");
        var assetBundle = AssetBundle.LoadFromFile(path);
        if (assetBundle == null)
        {
            DebugEx.LogError("AssetBundleManifest的包文件为空或者加载出错.");
        }
        var manifest = assetBundle.LoadAsset<AssetBundleManifest>(ResourcesPath.AssetDependentFileAssetName);
        if (manifest == null)
        {
            DebugEx.LogError("AssetBundleManifest文件为空或者加载出错.");
        }
        var bundles = manifest.GetAllAssetBundles();
        foreach (var bundle in bundles)
        {
            var dependenices = manifest.GetAllDependencies(bundle);
            var hash = manifest.GetAssetBundleHash(bundle);
            var assetBundleInfo = new AssetBundleInfo(bundle, hash, dependenices);
            m_AssetBundleInfoList.Add(assetBundleInfo);
        }
        assetBundle.Unload(true);
        assetBundle = null;
    }
    public void ReInitBuiltInAsset()
    {
        var path = AssetVersionUtility.GetBuiltInAssetFilePath("builtin_assetbundle");
        var assetBundle = AssetBundle.LoadFromFile(path);
        if (assetBundle == null)
        {
            DebugEx.LogError("AssetBundleManifest的包文件为空或者加载出错.");
        }
        var manifest = assetBundle.LoadAsset<AssetBundleManifest>(ResourcesPath.AssetDependentFileAssetName);
        if (manifest == null)
        {
            DebugEx.LogError("AssetBundleManifest文件为空或者加载出错.");
        }
        for (int i = m_AssetBundleInfoList.Count - 1; i >= 0; i--)
        {
            var item = m_AssetBundleInfoList[i];
            if (item.name.Contains("builtin"))
            {
                m_AssetBundleInfoList.Remove(item);
            }
        }
        var keys = new List<string>(m_AssetBundleDict.Keys);
        for (int i = keys.Count - 1; i >= 0; i--)
        {
            var item = keys[i];
            if (item.Contains("builtin"))
            {
                m_AssetBundleDict.Remove(item);
            }
        }
        var bundles = manifest.GetAllAssetBundles();
        foreach (var bundle in bundles)
        {
            var dependenices = manifest.GetAllDependencies(bundle);
            var hash = manifest.GetAssetBundleHash(bundle);
            var assetBundleInfo = new AssetBundleInfo(bundle, hash, dependenices);
            m_AssetBundleInfoList.Add(assetBundleInfo);
        }
        assetBundle.Unload(true);
        assetBundle = null;
    }
    public IEnumerator Initialize()
    {
        yield return StartCoroutine(Co_LoadMainfestFile("audio"));
@@ -115,7 +190,8 @@
            yield return Co_LoadAssetBundleDependenice(_assetBundleInfo);
        }
        var filePath = AssetVersionUtility.GetAssetFilePath(assetBundleName);
        var isBuiltin = assetBundleName.Contains("builtin");
        var filePath = isBuiltin ? AssetVersionUtility.GetBuiltInAssetFilePath(assetBundleName) : AssetVersionUtility.GetAssetFilePath(assetBundleName);
        DebugEx.LogFormat("Co_LoadAssetBundle(): 将要加载的assetBundle包路径 => {0}", filePath);
        var assetBundle = AssetBundle.LoadFromFile(filePath);
@@ -289,7 +365,8 @@
        Sync_LoadAssetBundleDependenice(_assetBundleInfo);
        string _path = AssetVersionUtility.GetAssetFilePath(assetBundleName);
        var isBuiltin = assetBundleName.Contains("builtin");
        string _path = isBuiltin ? AssetVersionUtility.GetBuiltInAssetFilePath(assetBundleName) : AssetVersionUtility.GetAssetFilePath(assetBundleName);
        AssetBundle _assetBundle = AssetBundle.LoadFromFile(_path);
        CacheAssetBundle(assetBundleName, _assetBundle);