// Use this for initialization void Start() { Application.targetFrameRate = 30; SystemManager.Instance().Initialize(this); UIManager.Instance().Initialize(mLayers); TableManager.Instance().Initialize(@"Data/Table/"); AssetBundleManager.Instance().Initialize(this, mBaseConfigUrl + CommonFunction.getPlatformString() + "/"); Object.DontDestroyOnLoad(this); StartCoroutine(StartCheckVersion()); }
protected T _LoadResFromStreamingAssetsBundle <T>(ResourceInfoTable resInfoItem, AssetType eAssetType, int iHashCode) where T : UnityEngine.Object { if (resInfoItem.Path.Count > 1) { AssetBundle assetBundle = AssetBundleManager.Instance().getAssetBundle(resInfoItem.Path[0]); if (null == assetBundle) { LoggerManager.Instance().LogProcessFormat("get assetbundle failed name = {0} ...", resInfoItem.Path[0]); return(default(T)); } return(_LoadResFromAssetBundle <T>(resInfoItem, assetBundle, iHashCode)); } LoggerManager.Instance().LogErrorFormat("_LoadResFromStreamingAssetsBundle failed ... path = {0} type = {1} argc = {2} error", resInfoItem.PathHashKey, typeof(T).Name, resInfoItem.Path.Count); return(default(T)); }
public bool Create(object argv) { LoggerManager.Instance().LogProcessFormat("Create Scene Name = {0}", sceneItem.Name); userData = argv; for (int i = 0; i < sceneItem.AssetBundles.Count; ++i) { var bundleName = sceneItem.AssetBundles[i]; if (!string.IsNullOrEmpty(bundleName)) { AddTask(AssetBundleManager.Instance().LoadAssetBundle(bundleName, null, () => { LoggerManager.Instance().LogErrorFormat("LoadAssetBundleFailed Name = {0} SceneName = {1}", bundleName, sceneItem.Name); }, false)); } } OnCreate(); return(true); }
public void Exit() { LoggerManager.Instance().LogProcessFormat("Exit Scene Name = {0}", sceneItem.Name); OnExit(); ansyTasks.Clear(); userData = null; iId = -1; UIManager.Instance().CloseAllFrames(); EventManager.Instance().Clear(); InvokeManager.Instance().Clear(); for (int i = 0; i < sceneItem.AssetBundles.Count; ++i) { if (!string.IsNullOrEmpty(sceneItem.AssetBundles[i])) { AssetBundleManager.Instance().UnLoadAssetBundle(sceneItem.AssetBundles[i]); } } sceneItem = null; }
IEnumerator LoadGameBaseModule() { bool succeed = true; if (AssetLoaderManager.Instance().HasSmallUpdate) { yield return(AssetBundleManager.Instance().LoadAssetBundleFromPkg(mBundleName, null, () => { succeed = false; })); if (!succeed) { mError = GMError.GME_LoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("Load BaseBundle {0} From Pkg Failed ...", mBundleName); yield break; } } else { yield return(AssetBundleManager.Instance().LoadAssetBundle(mBundleName, null, () => { succeed = false; }, true)); if (!succeed) { mError = GMError.GME_LoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("Load BaseBundle {0} From StreamingAssets Failed ...", mBundleName); yield break; } } TableManager.Instance().LoadTableFromAssetBundle <ProtoTable.ModuleTable>(AssetBundleManager.Instance().getAssetBundle(mBundleName)); var moduleTable = TableManager.Instance().GetTable <ProtoTable.ModuleTable>(); if (null == moduleTable) { mError = GMError.GME_LoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("load ModuleTable Failed ..."); yield break; } LoggerManager.Instance().LogProcessFormat("Load ModuleTable Succeed !"); yield return(AssetBundleManager.Instance().LoadAssetBundleFromModule(1, null, () => { succeed = false; })); if (!succeed) { mError = GMError.GME_LoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("load baseModule Failed ..."); yield break; } TableManager.Instance().LoadTableFromAssetBundle <ProtoTable.ResourceInfoTable>(AssetBundleManager.Instance().getAssetBundle(mBundleName)); var localResourcesInfoTable = TableManager.Instance().GetTable <ProtoTable.ResourceInfoTable>(); if (null == localResourcesInfoTable) { mError = GMError.GME_LoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("加载游戏资源表失败..."); yield break; } TableManager.Instance().LoadTableFromAssetBundle <ProtoTable.FrameTypeTable>(AssetBundleManager.Instance().getAssetBundle(mBundleName)); var frameTypeTable = TableManager.Instance().GetTable <ProtoTable.FrameTypeTable>(); if (null == frameTypeTable) { mError = GMError.GME_LoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("加载界面表失败..."); yield break; } var resourceInfoTable = AssetLoaderManager.Instance().Initialize(new AssetLoaderData { frameHandle = this, localResourcesInfoTable = localResourcesInfoTable, }); }
IEnumerator DownLoadBaseModule() { bool succeed = true; var baseBundleUrl = string.Format("{0}{1}/{2}/", mBaseConfigUrl, CommonFunction.getPlatformString(), AssetLoaderManager.Instance().RemoteVersion); yield return(AssetBundleManager.Instance().DownLoadAssetBundles(baseBundleUrl, new List <string>() { mBundleName }, null, () => { succeed = false; })); if (!succeed) { mError = GMError.GME_DownLoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("从远程加载[{0}] Bundle 失败 !!!", mBundleName); yield break; } yield return(AssetBundleManager.Instance().LoadAssetBundle(mBundleName, null, () => { succeed = false; }, false)); if (!succeed) { mError = GMError.GME_DownLoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("从本地加载 刚下载的[{0}] Bundle 失败 !!!", mBundleName); yield break; } var baseBundle = AssetBundleManager.Instance().getAssetBundle(mBundleName); if (null == baseBundle) { mError = GMError.GME_DownLoadBaseModuleFailed; LoggerManager.Instance().LogFormat("加载[{0}] Bundle 失败 !!!", mBundleName); yield break; } //加载模块表 TableManager.Instance().LoadTableFromAssetBundle <ProtoTable.ModuleTable>(baseBundle); var moduleTable = TableManager.Instance().GetTable <ModuleTable>(); if (null == moduleTable) { mError = GMError.GME_DownLoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("加载模块表 ModuleTable 失败 !!!"); yield break; } //加载 int baseModuleId = 1; var moduleItem = TableManager.Instance().GetTableItem <ModuleTable>(baseModuleId); if (null == moduleTable) { mError = GMError.GME_DownLoadBaseModuleFailed; LoggerManager.Instance().LogErrorFormat("加载模块表项 ModuleTable 失败 ID={0}!!!", baseModuleId); yield break; } List <string> needDownLoadBundles = new List <string>(32); AssetLoaderManager.Instance().GetNeedDownLoadModule(moduleItem.RequiredBundles.ToArray(), needDownLoadBundles); AssetLoaderManager.Instance().GetNeedDownLoadModule(new string[] { CommonFunction.getPlatformString() }, needDownLoadBundles); AssetBundleManager.Instance().UnLoadAssetBundle(mBundleName); if (needDownLoadBundles.Count > 0) { for (int i = 0; i < needDownLoadBundles.Count; ++i) { LoggerManager.Instance().LogProcessFormat("Bundle [{0}] 需要下载 ...", needDownLoadBundles[i]); } var bundleUrl = string.Format("{0}{1}/{2}/", mBaseConfigUrl, CommonFunction.getPlatformString(), AssetLoaderManager.Instance().RemoteVersion); yield return(AssetBundleManager.Instance().DownLoadAssetBundles(bundleUrl, needDownLoadBundles, null, () => { succeed = false; LoggerManager.Instance().LogErrorFormat("DownLoadAssetBundles Failed ..."); })); if (!succeed) { mError = GMError.GME_DownLoadBaseModuleFailed; yield break; } LoggerManager.Instance().LogFormat("DownLoadBaseModule Succeed !"); } else { LoggerManager.Instance().LogProcessFormat("No Bundle Need Download ..."); } }