| | |
| | |
|
| | | if (_assetBundle == null)
|
| | | {
|
| | | DesignDebug.LogError("AssetBundleManifest的包文件为空或者加载出错.");
|
| | | DebugEx.LogError("AssetBundleManifest的包文件为空或者加载出错.");
|
| | | yield break;
|
| | | }
|
| | |
|
| | | AssetBundleManifest _assetBundleManifest = _assetBundle.LoadAsset<AssetBundleManifest>(ResourcesPath.AssetDependentFileAssetName);
|
| | | if (_assetBundleManifest == null)
|
| | | {
|
| | | DesignDebug.LogError("AssetBundleManifest文件为空或者加载出错.");
|
| | | DebugEx.LogError("AssetBundleManifest文件为空或者加载出错.");
|
| | | yield break;
|
| | | }
|
| | |
|
| | |
| | | var _assetBundleInfo = GetAssetBundleInfo(assetBundleName);
|
| | | if (_assetBundleInfo == null)
|
| | | {
|
| | | DesignDebug.LogErrorFormat("Co_LoadAssetBundle(): {0}出现错误 => 不存在AssetBundleInfo. ", assetBundleName);
|
| | | DebugEx.LogErrorFormat("Co_LoadAssetBundle(): {0}出现错误 => 不存在AssetBundleInfo. ", assetBundleName);
|
| | | yield break;
|
| | | }
|
| | |
|
| | |
| | |
|
| | | var filePath = AssetVersionUtility.GetAssetFilePath(assetBundleName);
|
| | |
|
| | | DesignDebug.LogFormat("Co_LoadAssetBundle(): 将要加载的assetBundle包路径 => {0}", filePath);
|
| | | DebugEx.LogFormat("Co_LoadAssetBundle(): 将要加载的assetBundle包路径 => {0}", filePath);
|
| | | var assetBundle = AssetBundle.LoadFromFile(filePath);
|
| | | CacheAssetBundle(assetBundleName, assetBundle);
|
| | | }
|
| | |
| | | {
|
| | | if (assetInfo == null)
|
| | | {
|
| | | DesignDebug.LogErrorFormat("Co_DoLoadAsset(): {0}, 出现错误 => 存入的AssetInfo为null. ", assetInfo);
|
| | | DebugEx.LogErrorFormat("Co_DoLoadAsset(): {0}, 出现错误 => 存入的AssetInfo为null. ", assetInfo);
|
| | | yield break;
|
| | | }
|
| | | yield return Co_DoLoadAsset(assetInfo.assetBundleName, assetInfo.name, callBack);
|
| | |
| | |
|
| | | if (_object == null)
|
| | | {
|
| | | DesignDebug.LogErrorFormat("Sync_LoadAsset(): {0} 出现错误 => null. ", assetName);
|
| | | DebugEx.LogErrorFormat("Sync_LoadAsset(): {0} 出现错误 => null. ", assetName);
|
| | | }
|
| | |
|
| | | return _object;
|
| | |
| | | AssetBundleInfo _assetBundleInfo = GetAssetBundleInfo(assetBundleName);
|
| | | if (_assetBundleInfo == null)
|
| | | {
|
| | | DesignDebug.LogErrorFormat("Sync_LoadAssetBundle(): {0} 出现错误 => 不存在AssetBundleInfo. ", assetBundleName);
|
| | | DebugEx.LogErrorFormat("Sync_LoadAssetBundle(): {0} 出现错误 => 不存在AssetBundleInfo. ", assetBundleName);
|
| | | return;
|
| | | }
|
| | |
|
| | |
| | |
|
| | | if (JudgeExistAssetBundle(assetBundleName) == false)
|
| | | {
|
| | | DesignDebug.LogWarningFormat("UnloadAssetBundle(): 要卸载的包不在缓存中或者已经被卸载 => {0}. ", assetBundleName);
|
| | | DebugEx.LogWarningFormat("UnloadAssetBundle(): 要卸载的包不在缓存中或者已经被卸载 => {0}. ", assetBundleName);
|
| | | return;
|
| | | }
|
| | |
|
| | |
| | |
|
| | | if (JudgeExistAsset(assetBundleName, assetName) == false)
|
| | | {
|
| | | DesignDebug.LogWarningFormat("UnloadAsset(): 要卸载的资源不在缓存中 => {0}. ", _assembleName);
|
| | | DebugEx.LogWarningFormat("UnloadAsset(): 要卸载的资源不在缓存中 => {0}. ", _assembleName);
|
| | | return;
|
| | | }
|
| | |
|
| | |
| | |
|
| | | if (_assetObject is GameObject)
|
| | | {
|
| | | DesignDebug.LogFormat("UnloadAsset(): 成功卸载asset资源 => {0}. 类型为{1}, 不做其他处理. ", assetName, _assetObject.GetType().Name);
|
| | | DebugEx.LogFormat("UnloadAsset(): 成功卸载asset资源 => {0}. 类型为{1}, 不做其他处理. ", assetName, _assetObject.GetType().Name);
|
| | | }
|
| | | else
|
| | | {
|
| | | Resources.UnloadAsset(_assetObject);
|
| | | DesignDebug.LogFormat("UnloadAsset(): 成功卸载asset资源 => {0}. 类型为{1}, 执行Resources.UnloadAsset(). ", assetName, _assetObject.GetType().Name);
|
| | | DebugEx.LogFormat("UnloadAsset(): 成功卸载asset资源 => {0}. 类型为{1}, 执行Resources.UnloadAsset(). ", assetName, _assetObject.GetType().Name);
|
| | | }
|
| | |
|
| | | if (Application.isEditor)
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | DesignDebug.LogFormat("UnloadAssetBundle(): 要卸载assetBundle包 {0} 没有资源被加载. ", assetBundleInfo.name);
|
| | | DebugEx.LogFormat("UnloadAssetBundle(): 要卸载assetBundle包 {0} 没有资源被加载. ", assetBundleInfo.name);
|
| | | }
|
| | |
|
| | | // assetBundle包卸载
|
| | |
| | | // 卸载缓存的assetBundle资源
|
| | | m_AssetBundleDict.Remove(assetBundleInfo.name);
|
| | |
|
| | | DesignDebug.LogFormat("UnloadAssetBundle(): 成功卸载assetBundle包 => {0}. ", assetBundleInfo.name);
|
| | | DebugEx.LogFormat("UnloadAssetBundle(): 成功卸载assetBundle包 => {0}. ", assetBundleInfo.name);
|
| | |
|
| | | if (Application.isEditor)
|
| | | {
|
| | |
| | | m_AssetInfoDict[_assembleName] = _assetInfo;
|
| | | }
|
| | |
|
| | | DesignDebug.LogFormat("CacheAsset(): 成功缓存asset => {0}. ", assetName);
|
| | | DebugEx.LogFormat("CacheAsset(): 成功缓存asset => {0}. ", assetName);
|
| | |
|
| | | // if (Application.isEditor)
|
| | | // {
|
| | |
| | |
|
| | | if (assetBundle == null)
|
| | | {
|
| | | DesignDebug.LogErrorFormat("CacheAssetBundle(): {0}出现错误 => 将要缓存的包为 null. ", assetBundleName);
|
| | | DebugEx.LogErrorFormat("CacheAssetBundle(): {0}出现错误 => 将要缓存的包为 null. ", assetBundleName);
|
| | | return;
|
| | | }
|
| | |
|
| | | if (m_AssetBundleDict.ContainsKey(assetBundleName))
|
| | | {
|
| | | DesignDebug.LogErrorFormat("CacheAssetBundle(): {0}出现错误 => 将要缓存的包已经在缓存中. ", assetBundleName);
|
| | | DebugEx.LogErrorFormat("CacheAssetBundle(): {0}出现错误 => 将要缓存的包已经在缓存中. ", assetBundleName);
|
| | | return;
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | DesignDebug.LogFormat("CacheAssetBundle(): 成功缓存assetBundle包资源 => {0}. 目前有 {1} 个资源.", assetBundleName, m_AssetBundleDict.Count);
|
| | | DebugEx.LogFormat("CacheAssetBundle(): 成功缓存assetBundle包资源 => {0}. 目前有 {1} 个资源.", assetBundleName, m_AssetBundleDict.Count);
|
| | | }
|
| | |
|
| | | }
|