public UnityEngine.Object LoadAsset(string path, Type type) { #if UNITY_EDITOR //编辑器模式下,需要判断,是从哪儿加载资源 if (Menu.GetChecked(Const.AssetSystemConst.menu_editor_load_from_asset_pack_name)) { //从资源系统加载 return(mXAssetBundleMgr.LoadAsset(path, type)); } else { var fileInfo = AssetParse.Parse(path, mVFSConfigCache); if (fileInfo.handle_tag == E_FileHandleTag.invalid) { EditorUtility.DisplayDialog("资源系统 - 错误", "无法加载资源:" + path + "\n该路径资源在TinaX资源系统的管理范围之外,请尝试调整资源管理策略配置。", "好"); return(null); } else { //直接使用编辑器加载策略 return(AssetDatabase.LoadAssetAtPath(path, type)); } } #else return(mXAssetBundleMgr.LoadAsset(path, type)); #endif }
/// <summary> /// 加载资源[异步] /// </summary> /// <typeparam name="T"></typeparam> /// <param name="path">路径</param> /// <param name="callback">回调</param> /// <returns></returns> public void LoadAssetAsync <T>(string path, Action <T> callback) where T : UnityEngine.Object { #if UNITY_EDITOR //编辑器模式下,需要判断,是从哪儿加载资源 if (Menu.GetChecked(Const.AssetSystemConst.menu_editor_load_from_asset_pack_name)) { //从资源系统加载 mXAssetBundleMgr.LoadAsset_Async <T>(path, callback); } else { var fileInfo = AssetParse.Parse(path, mVFSConfigCache); if (fileInfo.handle_tag == E_FileHandleTag.invalid) { //编辑器报提示 EditorUtility.DisplayDialog("资源系统 - 错误", "无法加载资源:" + path + "\n该路径资源在TinaX资源系统的管理范围之外,请尝试调整资源管理策略配置。", "好"); if (callback != null) { callback(null); } } else { //直接使用编辑器加载策略 if (callback != null) { callback(AssetDatabase.LoadAssetAtPath <T>(path)); } } } #else mXAssetBundleMgr.LoadAsset_Async <T>(path, callback); #endif }
/// <summary> /// 移除资产引用 /// </summary> public void RemoveUse(string path) { //对外统称为path,不区分fileName和abName //尝试解析这个文件可否被加载 var path_info = AssetParse.Parse(path, mVFSConfigCache); if (path_info.handle_tag == E_FileHandleTag.invalid) { //无效资源,不用管 return; } mXAssetBundleMgr.UnRegister_AB_Use(path_info.ab_name); }
/// <summary> /// 检测文件路径是否在VFS管理范围内 /// </summary> /// <param name="path">文件路径</param> /// <param name="fileInfo">解析出的文件信息</param> /// <returns>如果在管理范围内,返回true</returns> private bool AssetPathTest(string path, out S_FileInfo fileInfo) { fileInfo = AssetParse.Parse(path, mConfigCache); if (fileInfo.handle_tag == E_FileHandleTag.invalid) { #if UNITY_EDITOR //编辑器报提示 EditorUtility.DisplayDialog("资源系统 - 错误", "无法加载资源:" + path + "\n该路径资源在TinaX资源系统的管理范围之外,请尝试调整资源管理策略配置。", "好"); #endif return(false); } return(true); }