| | |
| | | protected override void OnPreOpen() |
| | | { |
| | | base.OnPreOpen(); |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent; |
| | | manager.OnChatTabChangeEvent += OnChatTabChange; |
| | | manager.OnUpdateTalkEvent += OnUpdateTalkEvent; |
| | | manager.OnUpdateTalkCacheListEvent += OnUpdateTalkCacheList; |
| | | manager.OnDeleteTalkEvent += OnDeleteTalkEvent; |
| | | manager.OnUpdatePlayerInfoEvent += OnUpdatePlayerInfoEvent; |
| | | |
| | | scrChatTab.OnRefreshCell += OnRefreshChatTabCell; |
| | | scrWorld.OnGetDynamicSize += OnGetWorldChatDynamicSize; |
| | |
| | | protected override void OnPreClose() |
| | | { |
| | | base.OnPreClose(); |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent; |
| | | manager.OnChatTabChangeEvent -= OnChatTabChange; |
| | | manager.OnUpdateTalkEvent -= OnUpdateTalkEvent; |
| | | manager.OnUpdateTalkCacheListEvent -= OnUpdateTalkCacheList; |
| | | manager.OnDeleteTalkEvent -= OnDeleteTalkEvent; |
| | | manager.OnUpdatePlayerInfoEvent -= OnUpdatePlayerInfoEvent; |
| | | |
| | | scrChatTab.OnRefreshCell -= OnRefreshChatTabCell; |
| | | scrWorld.OnGetDynamicSize -= OnGetWorldChatDynamicSize; |
| | |
| | | scrGuild.mScrollRect.onValueChanged.RemoveListener(OnGuildScrollValChange); |
| | | GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; |
| | | clickScreenOtherSpace.RemoveAllListeners(); |
| | | } |
| | | |
| | | private void OnBeforePlayerDataInitializeEvent() |
| | | { |
| | | CreaterAll(manager.nowChatTab); |
| | | } |
| | | |
| | | private void OnUpdatePlayerInfoEvent() |
| | | { |
| | | RefreshAll(manager.nowChatChannel, isUpdatePlayerInfo: true); |
| | | } |
| | | |
| | | private void OnDeleteTalkEvent(ChatChannel channel) |
| | |
| | | return 0; |
| | | } |
| | | |
| | | private void RefreshAll(ChatChannel type, uint playerId = 0) |
| | | private void RefreshAll(ChatChannel type, uint playerId = 0, bool isUpdatePlayerInfo = false) |
| | | { |
| | | scrChatTab.m_Scorller.RefreshActiveCellViews(); |
| | | if (type == ChatChannel.World) |
| | | { |
| | | RefreshChat(type, scrWorld, playerId); |
| | | RefreshChat(type, scrWorld, playerId, isUpdatePlayerInfo); |
| | | } |
| | | else if (type == ChatChannel.Guild) |
| | | { |
| | | RefreshChat(type, scrGuild, playerId); |
| | | RefreshChat(type, scrGuild, playerId, isUpdatePlayerInfo); |
| | | } |
| | | |
| | | } |
| | | |
| | | private void RefreshChat(ChatChannel type, ScrollerController scroller, uint playerId = 0) |
| | | private void RefreshChat(ChatChannel type, ScrollerController scroller, uint playerId = 0, bool isUpdatePlayerInfo = false) |
| | | { |
| | | if (!manager.TryGetTalkData(type, out List<TalkData> datas) || datas == null) |
| | | return; |
| | |
| | | float height = GetHeight(talkDataType, data.Content, data.InfoList); |
| | | scroller.m_Scorller.AddHeight(true, height); |
| | | //Debug.Log($"ChatWin AddCell i {i} AddHeight {height}"); |
| | | |
| | | } |
| | | if (isUpdatePlayerInfo) |
| | | { |
| | | scroller.m_Scorller.RefreshActiveCellViews(); |
| | | } |
| | | } |
| | | else |