protected override void OnHidePanel() { base.OnHidePanel(); m_currentState = BattleManager.BattleViewStates.None; m_currentRole = null; m_selectItem = null; m_curItemList.Clear(); }
void OnItemClick(SkillUIItem item) { if (m_selectItem == item) { return; } if (m_selectItem != null) { m_selectItem.SetSelect(false); } m_selectItem = item; m_chooseBtn = false; //״̬»ú°ó¶¨ÐµÄÕÐʽ Õ½³¡ÖеıíÏÖ ×´Ì¬»ú»á´¦Àí BattleStateMechine.Instance.BindSkill(m_selectItem.GetSkill()); m_currentRole.SwitchAnimationToSkill(m_selectItem.GetSkill().Data); CheckNeedChangeState(); }
void RefreshSkill() { m_curItemList.Clear(); var zhaoshis = m_currentRole.GetZhaoshis(true).ToList(); childMgr.RefreshChildCount(zhaoshis.Count); List <Transform> childTransList = childMgr.GetUsingTransList(); for (int i = 0; i < zhaoshis.Count; i++) { SkillUIItem item = GameUtil.GetOrAddComponent <SkillUIItem>(childTransList[i]); item.RefreshSkill(zhaoshis[i]); item.SetSelect(m_selectItem == item); Button btn = item.GetComponent <Button>(); BindListener(btn, () => { OnItemClick(item); }); m_curItemList.Add(item); } }
//Ãæ°åµÄ״̬¸úËæ״̬»ú void SetPanelState() { if (m_currentState == BattleManager.BattleViewStates.SelectMove) { m_selectItem = null; m_chooseBtn = false; } else if (m_currentState == BattleManager.BattleViewStates.SelectSkill) { if (BattleStateMechine.Instance.CurrentZhaoshi == null) { if (m_curItemList.Count > 0) { m_selectItem = m_curItemList[0]; BattleStateMechine.Instance.BindSkill(m_selectItem.GetSkill()); } m_chooseBtn = false; UpdateSelect(); return; } for (int i = 0; i < m_curItemList.Count; i++) { if (m_curItemList[i].GetSkill().Key == BattleStateMechine.Instance.CurrentZhaoshi.Key) { m_selectItem = m_curItemList[i]; break; } } m_chooseBtn = (m_selectItem == null); //Ϊ¿Õ ˵Ã÷µ±Ç°Ñ¡ÔñµÄÊÇÌØÊâ¼¼ÄÜ ±ÈÈçÓö¾ if (m_chooseBtn && m_curItemList.Count > 0) //Èç¹ûÊÇÑ¡ÔñµÄ ÌØÊâ¼¼ÄÜ ÄÇô»¹ÊÇÒª¸øĬÈÏÑ¡ÔñÒ»¸ö¼¼ÄÜ { m_selectItem = m_curItemList[0]; } } UpdateSelect(); }