/// <summary> /// 创建时输入名字状态的手柄输入检测 /// </summary> /// <param name="keyType"></param> /// <param name="rockValue"></param> private void CreateNameInputType_HandleUpdate(UIManager.KeyType keyType, Vector2 rockValue) { if (nowNameInputFocus == null && nameInputUIFocusPath) { nowNameInputFocus = nameInputUIFocusPath.GetFirstFocus(); if (nowNameInputFocus) { nowNameInputFocus.SetForcus(); } } if (nowNameInputFocus) { //判断键位 Action <UIFocusPath.MoveType> MoveFocusAction = (moveType) => { UIFocus next = nameInputUIFocusPath.GetNewNextFocus(nowNameInputFocus, moveType);// uiFocusPath.GetNextFocus(nowFocus, moveType, true); if (next) { nowNameInputFocus.LostForcus(); nowNameInputFocus = next; nowNameInputFocus.SetForcus(); } }; switch (keyType) { case UIManager.KeyType.A: if (nowNameInputFocus) { UIFocusButton uiFocusButton = nowNameInputFocus as UIFocusButton; UIFocusInputField uiFocusInputField = nowNameInputFocus as UIFocusInputField; if (uiFocusButton) { uiFocusButton.ClickThisButton(); } else if (uiFocusInputField) { uiFocusInputField.EnterInputField(); } } break; case UIManager.KeyType.LEFT: MoveFocusAction(UIFocusPath.MoveType.LEFT); break; case UIManager.KeyType.RIGHT: MoveFocusAction(UIFocusPath.MoveType.RIGHT); break; case UIManager.KeyType.UP: MoveFocusAction(UIFocusPath.MoveType.UP); break; case UIManager.KeyType.DOWN: MoveFocusAction(UIFocusPath.MoveType.DOWN); break; } } }
private void OnEnable() { nowUIFocus = uiFocusPath.GetFirstFocus(); if (nowUIFocus) { nowUIFocus.SetForcus(); } }
/// <summary> /// 创建时选择种族状态的手柄输入检测 /// </summary> /// <param name="keyType"></param> /// <param name="rockValue"></param> private void CreateSelectRoleOfRaceType_HandleUpdate(UIManager.KeyType keyType, Vector2 rockValue) { if (nowRoleOfRaceFocus == null && roleOfRaceUIFocusPath) { nowRoleOfRaceFocus = roleOfRaceUIFocusPath.GetFirstFocus(); if (nowRoleOfRaceFocus) { nowRoleOfRaceFocus.SetForcus(); } } if (nowRoleOfRaceFocus) { //判断键位 Action <UIFocusPath.MoveType> MoveFocusAction = (moveType) => { UIFocus next = roleOfRaceUIFocusPath.GetNewNextFocus(nowRoleOfRaceFocus, moveType);// uiFocusPath.GetNextFocus(nowFocus, moveType, true); if (next) { nowRoleOfRaceFocus = next; CreateSelectRoleOfRaceUpdateNowFocus(); } }; switch (keyType) { case UIManager.KeyType.A: if (nowRoleOfRaceFocus) { UIFocusButton uiFocusButton = nowRoleOfRaceFocus as UIFocusButton; if (uiFocusButton) { uiFocusButton.ClickThisButton(); } } break; case UIManager.KeyType.LEFT: MoveFocusAction(UIFocusPath.MoveType.LEFT); break; case UIManager.KeyType.RIGHT: MoveFocusAction(UIFocusPath.MoveType.RIGHT); break; case UIManager.KeyType.UP: MoveFocusAction(UIFocusPath.MoveType.UP); break; case UIManager.KeyType.DOWN: MoveFocusAction(UIFocusPath.MoveType.DOWN); break; } } }
void Start() { entranceType = EnumEntranceType.Start; playerCreateTrans = GameObject.Find("PlayerInit").transform; if (settingCanvasPrefab) { GameObject settingGameObject = Instantiate(settingCanvasPrefab); settingCanvas = settingGameObject.GetComponent <Canvas>(); settingGameObject.SetActive(false); } UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle; StartCoroutine(CrossoverMaskImageAlpha(0)); //判断现在是否有默认存档,如果有则显示继续,如果没有则显示新建 List <Archive> archiveList = DataCenter.Instance.GetAllArchive();//获取所有存档名 Archive defaultArchive = archiveList.FirstOrDefault(temp => temp.ID == 1); UIFocus continueFoucs = startUIFocusPath.NewUIFocusArray.FirstOrDefault(temp => string.Equals(temp.Tag, "Continue")); UIFocus newFocus = startUIFocusPath.NewUIFocusArray.FirstOrDefault(temp => string.Equals(temp.Tag, "New")); if (defaultArchive == null) { if (continueFoucs) { continueFoucs.gameObject.SetActive(false); } if (newFocus) { newFocus.gameObject.SetActive(true); } } else { if (continueFoucs) { continueFoucs.gameObject.SetActive(true); } if (newFocus) { newFocus.gameObject.SetActive(false); } } //设置当前选中 if (nowStartFocus == null && startUIFocusPath) { nowStartFocus = startUIFocusPath.GetFirstFocus(); if (nowStartFocus) { nowStartFocus.SetForcus(); } } }
private void OnEnable() { iGameState = GameState.Instance.GetEntity <IGameState>(); //压入状态 iGameState.PushEnumGameRunType(EnumGameRunType.Setting); UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle; if (!uiFocusPath) { uiFocusPath = GetComponent <UIFocusPath>(); } if (uiFocusPath) { nowTabPageFocus = uiFocusPath.GetFirstFocus() as UIFocusTabPage; if (nowTabPageFocus) { nowTabPageFocus.SetForcus(); if (nowTabPageFocus.panel) { nowTabPageFocus.panel.gameObject.SetActive(true); } } } ShowIndex(0); }
private void OnEnable() { UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle; if (uiFocusPath) { nowTabPageFocus = uiFocusPath.GetFirstFocus() as UIFocusTabPage; if (nowTabPageFocus) { nowTabPageFocus.SetForcus(); } if (nowTabPageFocus != null && nowTabPageFocus.panel) { nowTabPageFocus.panel.gameObject.SetActive(true); } if (nowTabPageFocus != null && nowTabPageFocus.panelFocusPath) { tabPanelFocus = nowTabPageFocus.panelFocusPath.GetFirstFocus(); if (tabPanelFocus != null) { tabPanelFocus.SetForcus(); } } } //重新载入数据 //throw new NotImplementedException(); }
private void OnEnable() { fisrtKeyUP = false; uiFocusPath = GetComponent <UIFocusPath>(); nowUIFocus = uiFocusPath.GetFirstFocus(); saveingImage.gameObject.SetActive(false); UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle; }
/// <summary> /// 当显示时初始化按键数据 /// </summary> private void OnEnable() { playerState = DataCenter.Instance.GetEntity <PlayerState>(); keyContactData = DataCenter.Instance.GetEntity <KeyContactData>(); skillStructData = DataCenter.Instance.GetMetaData <SkillStructData>(); selectTargetPanel.gameObject.SetActive(false); UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle; enumKeySettingType = EnumKeySettingType.Lattice; if (keySettingFocusPath) { nowKeySettingLattice = keySettingFocusPath.GetFirstFocus() as UIFocusKeySettingLattice; if (nowKeySettingLattice) { nowKeySettingLattice.SetForcus(); } //初始化显示 UIFocus[] uiKeySettingLatticeArray = keySettingFocusPath.NewUIFocusArray;// keySettingFocusPath.UIFocuesArray; foreach (UIFocus item in uiKeySettingLatticeArray) { if (!item) { continue; } UIFocusKeySettingLattice uiKeySettingLattice = item as UIFocusKeySettingLattice; int inputKey = uiKeySettingLattice.GetKeySettingInput();//输入的按键值 if (uiKeySettingLattice) { KeyContactStruct[] keyContactStructs = keyContactData.GetKeyContactStruct(inputKey); if (keyContactStructs.Length > 0) { uiKeySettingLattice.keyLatticeType = keyContactStructs[0].keyContactType; uiKeySettingLattice.id = keyContactStructs[0].id; } else { uiKeySettingLattice.keyLatticeType = EnumKeyContactType.None; uiKeySettingLattice.id = 0; } //初始化显示 uiKeySettingLattice.InitShow(); } } } }
/// <summary> /// 按键检测(抬起) /// </summary> /// <param name="keyType"></param> /// <param name="rockValue"></param> private void Instance_KeyUpHandle(UIManager.KeyType keyType, Vector2 rockValue) { Func <UIFocusPath.MoveType, UIFocus> GetNext = (key) => { UIFocus nextFocus = uiFocusPath.GetNewNextFocus(nowUIFocus, key); return(nextFocus); }; switch (keyType) { case UIManager.KeyType.A: if (nowUIFocus) { nowUIFocus.MoveChild(UIFocusPath.MoveType.OK); } break; case UIManager.KeyType.LEFT: if (nowUIFocus) { nowUIFocus.MoveChild(UIFocusPath.MoveType.LEFT); } break; case UIManager.KeyType.RIGHT: if (nowUIFocus) { nowUIFocus.MoveChild(UIFocusPath.MoveType.RIGHT); } break; case UIManager.KeyType.UP: case UIManager.KeyType.DOWN: if (!nowUIFocus) { nowUIFocus = uiFocusPath.GetFirstFocus(); } else { UIFocus nextFocus = GetNext(keyType == UIManager.KeyType.UP ? UIFocusPath.MoveType.UP : UIFocusPath.MoveType.DOWN); nowUIFocus.LostForcus(); nowUIFocus = nextFocus; } if (nowUIFocus) { nowUIFocus.SetForcus(); } break; } }
/// <summary> /// 按键检测 /// </summary> /// <param name="keyType"></param> /// <param name="rockValue"></param> private void Instance_KeyUpHandle(UIManager.KeyType keyType, Vector2 rockValue) { if (!fisrtKeyUP) { fisrtKeyUP = true; return; } if (UIAction.isSaving) { return; } Action <UIFocusPath.MoveType> MoveNextEndAction = (moveType) => { if (nowUIFocus) { UIFocus uiFocus = uiFocusPath.GetNewNextFocus(nowUIFocus, moveType); if (uiFocus) { nowUIFocus.LostForcus(); nowUIFocus = uiFocus; nowUIFocus.SetForcus(); } } else { nowUIFocus = uiFocusPath.GetFirstFocus(); nowUIFocus.SetForcus(); } }; switch (keyType) { case UIManager.KeyType.A: UIFocusButton uiFocusButton = nowUIFocus as UIFocusButton; if (uiFocusButton) { uiFocusButton.ClickThisButton(); } break; case UIManager.KeyType.UP: MoveNextEndAction(UIFocusPath.MoveType.UP); break; case UIManager.KeyType.DOWN: MoveNextEndAction(UIFocusPath.MoveType.DOWN); break; } }
private void OnEnable() { UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle; if (uiFocusPath) { nowUIFocus = uiFocusPath.GetFirstFocus(); if (nowUIFocus) { nowUIFocus.SetForcus(); } } //给任务系统填入状态 INowTaskState iNowTaskState = GameState.Instance.GetEntity <INowTaskState>(); iNowTaskState.CheckNowTask(EnumCheckTaskType.Special, (int)TaskMap.Enums.EnumTaskSpecialCheck.OpenItemUI); }
private void OnEnable() { isSaving = false; iGameState = GameState.Instance.GetEntity <IGameState>(); //压入状态 iGameState.PushEnumGameRunType(EnumGameRunType.Setting); UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle; if (uiFocusPath) { nowTabPageFocus = uiFocusPath.GetFirstFocus() as UIFocusTabPage; if (nowTabPageFocus) { nowTabPageFocus.SetForcus(); if (nowTabPageFocus.panel) { nowTabPageFocus.panel.gameObject.SetActive(true); } } } //重新载入数据 //检测此时是否有点击地图的ID(如果是则载入地图标签) IInteractiveState iInteractiveState = GameState.Instance.GetEntity <IInteractiveState>(); NPCData npcData = DataCenter.Instance.GetMetaData <NPCData>(); NPCDataInfo npcDataInfo = npcData.GetNPCDataInfo(iGameState.SceneName, iInteractiveState.ClickInteractiveNPCID); if (npcDataInfo != null && npcDataInfo.NPCType == EnumNPCType.Street) { UIFocusTabPage[] tabPages = uiFocusPath.NewUIFocusArray.OfType <UIFocusTabPage>().ToArray(); var tempUIBigMaps = Enumerable.Range(0, tabPages.Length).Select(temp => new { index = temp, uiBigMap = tabPages[temp].panel.GetComponent <UIBigMap>() }).Where(temp => temp.uiBigMap != null).FirstOrDefault(); if (tempUIBigMaps != null) { ShowIndex(tempUIBigMaps.index); } else { ShowIndex(1);//第一个标签是地图则此处选取第二个标签(属性) } } else//如果不是则载入第一个标签 { ShowIndex(0); } //给任务系统填入状态 INowTaskState iNowTaskState = GameState.Instance.GetEntity <INowTaskState>(); iNowTaskState.CheckNowTask(EnumCheckTaskType.Special, (int)TaskMap.Enums.EnumTaskSpecialCheck.OpenMenuUI); }
/// <summary> /// 设置焦点 /// </summary> public override void SetForcus() { if (equipentsLatticePath) { nowLattice = equipentsLatticePath.GetFirstFocus() as UIFocusItemEquipmentLattice; if (nowLattice) { nowLattice.SetForcus(); } SelectNowLattice(); try { UIManager.Instance.KeyUpHandle -= Instance_KeyUpHandle; } catch { } UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle; } }
/// <summary> /// 按键检测 /// </summary> /// <param name="keyType"></param> /// <param name="rockValue"></param> private void Instance_KeyUpHandle(UIManager.KeyType keyType, Vector2 rockValue) { switch (enumUISkillCombine) { case EnumUISkillCombine.CombineSkillItem: //处于左侧状态 switch (keyType) { case UIManager.KeyType.A: if (nowCombineSkillItem) { //设置技能框的边框显示 nowUISkilCombineLattice = uiFocusPath.GetFirstFocus <UIFocusSkillCombineLattice>(); if (nowUISkilCombineLattice) { nowUISkilCombineLattice.SetForcus(); } //同时将模式更改为CombineSkillLattice enumUISkillCombine = EnumUISkillCombine.CombineSkillLattice; uiCombineSkillList.CanClickListItem = false; } break; case UIManager.KeyType.UP: case UIManager.KeyType.DOWN: { UIListItem[] tempArrays = uiCombineSkillList.GetAllImtes(); int index = 0; if (nowCombineSkillItem) { index = tempArrays.ToList().IndexOf(nowCombineSkillItem); } if (index < 0) { index = 0; } switch (keyType) { case UIManager.KeyType.UP: index--; break; case UIManager.KeyType.DOWN: index++; break; } index = Mathf.Clamp(index, 0, tempArrays.Length - 1); if (index < tempArrays.Length) { uiCombineSkillList.ShowItem(tempArrays[index]); if (nowCombineSkillItem && nowCombineSkillItem.childImage) { nowCombineSkillItem.childImage.enabled = false; nowCombineSkillItem.childImage.gameObject.SetActive(false); } nowCombineSkillItem = tempArrays[index]; if (nowCombineSkillItem && nowCombineSkillItem.childImage) { nowCombineSkillItem.childImage.enabled = true; nowCombineSkillItem.childImage.gameObject.SetActive(true); } if (nowCombineSkillItem) { SetSkillCombineLatticeAndShowVadio((EnumSkillType[])nowCombineSkillItem.value); } } } break; } break; case EnumUISkillCombine.CombineSkillLattice: //处于右侧状态 switch (keyType) { case UIManager.KeyType.A: SetSelectSkill(); break; case UIManager.KeyType.B: if (nowUISkilCombineLattice) { nowUISkilCombineLattice.LostForcus(); } enumUISkillCombine = EnumUISkillCombine.CombineSkillItem; //切换模式到组合技能集合 uiCombineSkillList.CanClickListItem = true; break; case UIManager.KeyType.LEFT: case UIManager.KeyType.RIGHT: if (nowUISkilCombineLattice) { UIFocusSkillCombineLattice tempUIFocuesSkillCombineLattice = uiFocusPath.GetNewNextFocus(nowUISkilCombineLattice, keyType == UIManager.KeyType.LEFT ? UIFocusPath.MoveType.LEFT : UIFocusPath.MoveType.RIGHT) as UIFocusSkillCombineLattice; //uiFocusPath.GetNextFocus(nowUISkilCombineLattice, keyType == UIManager.KeyType.LEFT ? UIFocusPath.MoveType.LEFT : UIFocusPath.MoveType.RIGHT) as UIFocusSkillCombineLattice; if (tempUIFocuesSkillCombineLattice) { nowUISkilCombineLattice.LostForcus(); nowUISkilCombineLattice = tempUIFocuesSkillCombineLattice; nowUISkilCombineLattice.SetForcus(); } } break; } break; case EnumUISkillCombine.CombineSkillSelect: //处于选择技能状态 switch (keyType) { case UIManager.KeyType.A: ResetCombineSkillLattice(); break; case UIManager.KeyType.B: //切换状态 uiSelectSkillList.gameObject.SetActive(false); enumUISkillCombine = EnumUISkillCombine.CombineSkillLattice; break; case UIManager.KeyType.UP: case UIManager.KeyType.DOWN: { UIListItem[] tempArrays = uiSelectSkillList.GetAllImtes(); int index = 0; if (nowCombineSkillItem) { index = tempArrays.ToList().IndexOf(nowSelectSkillItem); } if (index < 0) { index = 0; } switch (keyType) { case UIManager.KeyType.UP: index--; break; case UIManager.KeyType.DOWN: index++; break; } index = Mathf.Clamp(index, 0, tempArrays.Length - 1); if (index < tempArrays.Length) { uiSelectSkillList.ShowItem(tempArrays[index]); if (uiSelectSkillList && nowSelectSkillItem.childImage) { nowSelectSkillItem.childImage.enabled = false; nowSelectSkillItem.childImage.gameObject.SetActive(false); } nowSelectSkillItem = tempArrays[index]; if (uiSelectSkillList && nowSelectSkillItem.childImage) { nowSelectSkillItem.childImage.enabled = true; nowSelectSkillItem.childImage.gameObject.SetActive(true); } } } break; } break; } }
/// <summary> /// 按键检测(功能键) /// </summary> /// <param name="keyType"></param> /// <param name="rockValue"></param> private void Instance_KeyUpHandle(UIManager.KeyType keyType, Vector2 rockValue) { if (!fisrtKeyUP) { fisrtKeyUP = true; return; } switch (bigMapOperateState) { case EnumBigMapOperateState.OperateMap: //操作地图 switch (keyType) { case UIManager.KeyType.A: Vector2 handlePos = uiMapControl.GetHandlePosInTerrain(); ActionAtTerrain(handlePos); break; case UIManager.KeyType.Y: bigMapOperateState = EnumBigMapOperateState.CheckSetting; showSettingPanel.gameObject.SetActive(true); if (uiFocusPath) { nowUIFocus = uiFocusPath.GetFirstFocus(); } if (nowUIFocus) { nowUIFocus.SetForcus(); } break; } break; case EnumBigMapOperateState.CheckSetting: //操作设置 if (!nowUIFocus) { if (uiFocusPath) { nowUIFocus = uiFocusPath.GetFirstFocus(); } } if (nowUIFocus) { Action <UIFocusPath.MoveType> MoveUIFocusAction = (moveType) => { UIFocus nextUIFocus = uiFocusPath.GetNewNextFocus(nowUIFocus, moveType); //uiFocusPath.GetNextFocus(nowUIFocus, moveType); if (nextUIFocus != null) { nowUIFocus.LostForcus(); nowUIFocus = nextUIFocus; nowUIFocus.SetForcus(); } }; switch (keyType) { case UIManager.KeyType.A: if (nowUIFocus.GetType().Equals(typeof(UIFocusButton))) { ((UIFocusButton)nowUIFocus).ClickThisButton(); } else if (nowUIFocus.GetType().Equals(typeof(UIFocusToggle))) { ((UIFocusToggle)nowUIFocus).MoveChild(UIFocusPath.MoveType.OK); } break; case UIManager.KeyType.B: ExitSetting_Click(); break; case UIManager.KeyType.LEFT: MoveUIFocusAction(UIFocusPath.MoveType.LEFT); break; case UIManager.KeyType.RIGHT: MoveUIFocusAction(UIFocusPath.MoveType.RIGHT); break; case UIManager.KeyType.UP: case UIManager.KeyType.DOWN: if (string.Equals(nowUIFocus.Tag, "SceneDropDown")) { UIFocusDropdown uiFocusDropDown = nowUIFocus as UIFocusDropdown; if (uiFocusDropDown != null) { uiFocusDropDown.MoveChild(keyType == UIManager.KeyType.UP ? UIFocusPath.MoveType.UP : UIFocusPath.MoveType.DOWN); } } break; } } break; } }