/// <summary> /// 重新加载配置表 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> /// <returns></returns> public static async Task ReloadConfig <T>(Dictionary <object, T> source) where T : BaseConfig { string fileName = typeof(T).Name; source.Clear(); UnityEngine.Object configObj = await GameFrameEntry.GetModule <AssetbundleModule>().LoadAsset <UnityEngine.Object>(configAssetbundle, fileName); if (configObj != null) { string strconfig = configObj.ToString(); List <T> list = JsonMapper.ToObject <List <T> >(strconfig); for (int i = 0; i < list.Count; i++) { if (source.ContainsKey(list[i].UniqueID)) { CLog.Error($"表[{fileName}]中有相同键({list[i].UniqueID})"); } else { source.Add(list[i].UniqueID, list[i]); } } } else { CLog.Error($"配置文件不存在{fileName}"); } }
/// <summary> /// 异步加载资源 /// </summary> private async Task <T> _LoadAsset <T>(string assetBundleName, string assetName, bool isWait = false) where T : UObject { // Load asset from assetBundle. AssetBundleLoadAssetOperation request = AssetBundleManager.LoadAssetAsync(assetBundleName, assetName, typeof(T)); if (request == null) { return(default(T)); } await request; #if UNITY_EDITOR if (AssetBundleManager.SimulateAssetBundleInEditor) { await waitFrame; } #endif T obj = request.GetAsset <T>(); if (obj == null) { CLog.Error($"加载资源失败:{assetBundleName} AssName:{assetName}"); } return(obj); }
/// <summary> /// 获取引用对象(在UIOutlet中定义的) /// </summary> public GameObject Get(string name) { GameObject obj; if (!objectList.TryGetValue(name, out obj)) { CLog.Error($"未找到GameObject对象,请在UIOutlet中设置:{name}"); } return(obj); }
public EffectData GetEffectDataById(int id) { EffectData data; if (!dicEffectDatas.TryGetValue(id, out data)) { CLog.Error($"未找到ID[{id}]为的特效"); } return(data); }
public void ResetLoopTimer(int Id) { LoopTimerData data; if (!loopTimers.TryGetValue(Id, out data)) { CLog.Error($"ResetLoopTimer,未找到对应ID[{Id}]的数据类"); return; } data.ResetTimer(); }
/// <summary> /// 暂停循环计时器 /// </summary> /// <param name="Id"></param> public void PauseLoopTimer(int Id) { LoopTimerData data; if (!loopTimers.TryGetValue(Id, out data)) { CLog.Error($"PauseLoopTimer,未找到对应ID[{Id}]的数据类"); return; } data.Pause(true); }
public T GetModel <T>() where T : DataManagerBase { T t = default(T); Type tp = typeof(T); if (m_DataManagerDic != null && m_DataManagerDic.ContainsKey(tp)) { t = m_DataManagerDic[tp] as T; } else { CLog.Error($"未找到[{tp.FullName}]数据管理器"); } return(t); }
/// <summary> /// 获取UI节点 /// </summary> /// <param name="node"></param> /// <returns></returns> public Transform _GetUINode(string node) { Transform tran; if (!_uiNodeList.TryGetValue(node, out tran)) { tran = UIRoot.transform.Find(node); if (tran == null) { CLog.Error("未找到UI节点:" + node); tran = canvas.transform; } _uiNodeList.Add(node, tran); } return(tran); }
/// <summary> /// 获取控件对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="path">路径</param> /// <param name="parent">父对象</param> /// <returns></returns> public T GetComponen <T>(string path, Transform parent = null) where T : Component { if (parent == null) { parent = transform; } Transform tran = parent.Find(path); if (tran == null) { string str = $"父对象[{parent.name}],子路径[{path}]下未找到[{typeof(T).Name}]类型的对象"; CLog.Error(str); return(null); } return(parent.Find(path).GetComponent <T>()); }
/// <summary> /// 开始某个游戏 /// </summary> public static void StarGame(string AppName, string GameMenuScene = "") { if (!CheckAppInProject(AppName)) { CLog.Error($"当前工程未包含[{AppName}]游戏"); return; } if (!string.IsNullOrEmpty(GameMenuScene)) { GameMenuSceneName = GameMenuScene; } MsgDispatcher.SendMessage(GlobalEventType.ReadyExitGame); IsGoGameMenu = false; GlobalData.MineAppName = AppName; //跳转到过度场景 UnityEngine.SceneManagement.SceneManager.LoadScene("GameFrameworkLoad"); }
/// <summary> /// 读取竖表 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> public static async Task <T> readConfigV <T>() where T : BaseConfig { string fileName = typeof(T).Name; UnityEngine.Object configObj = await GameFrameEntry.GetModule <AssetbundleModule>().LoadAsset <UnityEngine.Object>(configAssetbundle, fileName); if (configObj != null) { string strconfig = configObj.ToString(); List <T> list = JsonMapper.ToObject <List <T> >(strconfig); if (list.Count > 0) { return(list[0]); } } else { CLog.Error($"配置文件不存在{fileName}"); } return(null); }