private BaseCallback BuildCB(string relePath) { Utils.SB.Append(UnityUtil.StreamingAssetsPath); Utils.SB.Append(relePath); string path = Utils.SB.ToString(); Utils.ClearSB(); BaseCallback cb = new BaseCallback(); cb.OnStart = () => { Action <byte[]> onSuccess = (bs) => { //读取到stream中的bundle后存到persist中 Utils.SB.Append(UnityUtil.PersistentPath); Utils.SB.Append(relePath); string bundlePath = Utils.SB.ToString(); string parentFolderPath = FileHelper.GetDirectorName(bundlePath); FileHelper.CreateFolder(parentFolderPath); //LogMgr.I("UpdateMgr", "BuildCB", "解压资源成功 原始路径:"+ path+" 目标路径:" + bundlePath+" 文件夹路径:"+ parentFolderPath, BeShowLog); FileHelper.WriteBytes2File_Create(bundlePath, bs); Utils.SB.Clear(); cb.End(); }; Action <string> onFaile = (error) => { LogMgr.E("UpdateMgr", "BuildCB", "解压资源 原始路径:" + path + "失败,解压中断", BeShowLog); }; //LogMgr.I("UpdateMgr", "BuildCB", "开始解压资源:" + path, BeShowLog); FileHelper.GetIns().ReadBytesFromApkFile(path, onSuccess, onFaile); }; return(cb); }
public IChatCommand GetCommandForCallback(Update update) { var callbackData = BaseCallback.Deserialize <UnknownCallback>(update.CallbackQuery.Data); IChatCommand result = commands.FirstOrDefault(x => x.CanHandle(callbackData)); if (result != null) { result = (IChatCommand)serviceProvider.GetService(result.GetType()); } logger.LogDebug("Command {result} for message callback {message}", result?.GetType(), update.CallbackQuery.Message.Text); return(result); }
private void OnOneActionCallback() { if (CallbackActionQue.Count > 0) { float progress = 1f - CallbackActionQue.Count / ActionNum; ProgressEvent?.Invoke(progress); BaseCallback cb = CallbackActionQue.Dequeue(); cb.Start(); } else { ProgressEvent?.Invoke(1f); End(); } }
private BaseCallback LoadRole(PlayerInfoStruct roleInfo) { BaseCallback cb = new BaseCallback(); cb.OnStart = () => { Listener <string> onloadOver = (id) => { LogMgr.I("StageScnMgr", "LoadRole.cb.OnStart.onloadOver", " id:" + id, BeShowLog); cb.End(); }; TActor.Create(roleInfo, onloadOver); }; return(cb); }
//开始执行 public override void Start() { ActionNum = CallbackActionQue.Count; if (ActionNum > 0) { ProgressEvent?.Invoke(0f); BaseCallback cb = CallbackActionQue.Dequeue(); cb.Start(); } else { LogMgr.I("CallbackMgr", "Start", "ActionNum==0 直接执行CallbackMgr的End,检查是否添加过callback", true); ProgressEvent?.Invoke(1f); End(); } }
//添加callback public void Add(BaseCallback action) { action.OnEnd = OnOneActionCallback; CallbackActionQue.Enqueue(action); }