using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 加入公会界面 :公会查找列表,也是排行榜 /// public class GuildJoinWin : UIBase { [SerializeField] InputField findText; [SerializeField] Button findBtn; [SerializeField] Button createGuildBtn; [SerializeField] Button quicklyJoinGuildBtn; [SerializeField] ScrollerController guildListScroller; [SerializeField] Transform noGuildTf; string lastQuery = ""; int lastPage = 0; protected override void InitComponent() { findBtn.AddListener(() => OnFindBtnClick()); createGuildBtn.AddListener(OnCreateGuildBtnClick); quicklyJoinGuildBtn.AddListener(OnQuicklyJoinGuildBtnClick); } protected override void OnPreOpen() { findText.text = ""; //打开界面默认请求,滚动的时候需要处理页数 QueryGuild(); GuildManager.Instance.OnRefreshFairyList += OnRefreshGuildList; GuildManager.Instance.MyRequestJoinEvent += MyRequestJoinEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; guildListScroller.OnRefreshCell += RefreshCell; Display(); } protected override void OnPreClose() { GuildManager.Instance.OnRefreshFairyList -= OnRefreshGuildList; GuildManager.Instance.MyRequestJoinEvent -= MyRequestJoinEvent; guildListScroller.OnRefreshCell -= RefreshCell; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; var win = UIManager.Instance.GetUI(); if (win) win.RestoreFuncBtn(); } void OnRefreshFairyInfo() { //当前界面下有刷新自家的公会数据,说明一定是加入了公会,需主动跳转到公会界面 CloseWindow(); var win = UIManager.Instance.GetUI(); if (win) win.ClickFunc(4); } void Display() { CreateScroller(); } void MyRequestJoinEvent() { guildListScroller.m_Scorller.RefreshActiveCellViews(); } //列表变小的话 重新创建;列表变大的话,只添加 void CreateScroller() { if (GuildManager.Instance.pageIndexList.Count == 0) { noGuildTf.SetActive(true); guildListScroller.SetActive(false); return; } noGuildTf.SetActive(false); guildListScroller.SetActive(true); var startCount = guildListScroller.GetNumberOfCells(); if (startCount > GuildManager.Instance.pageIndexList.Count) { guildListScroller.Refresh(); } for (int i = startCount; i < GuildManager.Instance.pageIndexList.Count; i++) { guildListScroller.AddCell(ScrollerDataType.Header, i); } guildListScroller.Restart(); } void OnRefreshGuildList() { CreateScroller(); } void RefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell.Display(cell.index); } private void OnFindBtnClick() { var nowQuery = findText.text; if (string.IsNullOrEmpty(nowQuery) && string.IsNullOrEmpty(lastQuery)) { SysNotifyMgr.Instance.ShowTip("GuildSys5"); return; } if (nowQuery.Length < 2 && nowQuery.Length > 0) { SysNotifyMgr.Instance.ShowTip("GuildSys7"); return; } lastQuery = nowQuery; lastPage = 0; guildListScroller.Refresh(); GuildManager.Instance.SendFindGuild(lastQuery); } void QueryGuild() { lastQuery = ""; lastPage = 0; guildListScroller.Refresh(); GuildManager.Instance.SendFindGuild(lastQuery); } private void OnCreateGuildBtnClick() { UIManager.Instance.OpenWindow(); } private void OnQuicklyJoinGuildBtnClick() { if (GuildManager.Instance.pageIndexList.Count == 0) { SysNotifyMgr.Instance.ShowTip("QuickEnterFamilyFail"); return; } GuildManager.Instance.SendApplyGuild(0, 0); } }