Esempio n. 1
0
        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
        }
Esempio n. 2
0
        /// <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
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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);
        }