private void OnOpenUIHandle(ui.UISettings.UIWindowID uiID) { StartCoroutine(SetCanvasCamera()); PlayerData playerdata = GameMainManager.Instance.playerData; if (playerdata.role != null && playerdata.GetRoleState(playerdata.role.id) != PlayerData.RoleState.Normal) { //return; } Debug.Log("打开面板" + uiID.ToString()); config.GuideItem item = GetUnDisplayedGuideWithUIid(uiID, playerdata.questId); if (item != null) { guideStepID = item.id; Show(item); } }
private config.GuideItem GetUnDisplayedGuideWithUIid(ui.UISettings.UIWindowID id, string questId) { config.GuideItem guide = null; questId = string.IsNullOrEmpty(questId)?"0":questId; //除了特殊情况 从配置表里遍历寻找没有展示过的 当前面板的引导 List <config.GuideItem> allItems = GameMainManager.Instance.configManager.guideConfig.GetItemWithWindowName(id.ToString()); List <config.GuideItem> list = new List <config.GuideItem>();//步骤id 每个步骤起始引导的id if (allItems != null) { //查找每个步骤的起始id for (int i = 0; i < allItems.Count; i++) { config.GuideItem item = allItems[i]; if (!string.IsNullOrEmpty(item.questId) && item.questId != questId) { continue; } if (i > 0) { config.GuideItem lastItem = allItems[i - 1]; if (lastItem.nextId == item.id) { continue; } } list.Add(item); } } //找出没有展示过的引导 for (int i = 0; i < list.Count; i++) { if (!displayedGuides.ContainsKey(list[i].id)) { guide = list[i]; break; } } if (guide == null) { return(null); } /* * //特殊处理 * if (id == ui.UISettings.UIWindowID.UITaskWindow) * { * config.QuestItem quest = GameMainManager.Instance.playerData.GetQuest(); * if (quest.type == config.QuestItem.QuestType.Branch && guide.id != "10014") * { * return null; * } * }*/ string displayedGuidesStr = ""; foreach (string key in displayedGuides.Keys) { displayedGuidesStr += "[" + key + "]"; } Debug.Log("@@@准备进行引导:" + guide.id + " 进行过的引导:" + displayedGuidesStr); return(guide); }
private void OnCloseUIHandle(ui.UISettings.UIWindowID uiID) { Debug.Log("关闭面板" + uiID.ToString()); //关闭ui时的处理 }