yyl
2026-03-26 f4a702e212d1853735f8dae399da69d23bfa510e
Main/System/Chat/ChatWin.cs
@@ -43,6 +43,9 @@
        btnClose.SetListener(CloseWindow);
        btnSendChat.SetListener(() =>
        {
            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat, true))
                return;
            // 如果在聊天输入界面无输入文字点击发送,则关闭聊天输入界面
            if (string.IsNullOrEmpty(inputChat.text))
            {
@@ -312,7 +315,7 @@
        }
    }
    private void OnChatTabChange(ChatTab entrance)
    private void OnChatTabChange(ChatChannel entrance)
    {
        CreaterAll(entrance);
    }
@@ -327,13 +330,13 @@
        RefreshAll(manager.nowChatChannel);
    }
    private void CreaterAll(ChatTab chatTab)
    private void CreaterAll(ChatChannel chatTab)
    {
        if (chatTab == ChatTab.World)
        if (chatTab == ChatChannel.World)
        {
            manager.nowChatChannel = ChatChannel.World;
        }
        else if (chatTab == ChatTab.Guild)
        else if (chatTab == ChatChannel.Guild)
        {
            manager.nowChatChannel = ChatChannel.Guild;
        }
@@ -342,34 +345,34 @@
        // 打开界面时默认到底部,无未读
        isJumpArea = true;
        scrWorld.lockType = EnhanceLockType.LockVerticalBottom; // 初始锁定底部
        scrWorld.SetActive(chatTab == ChatTab.World);
        scrWorld.SetActive(chatTab == ChatChannel.World);
        scrGuild.lockType = EnhanceLockType.LockVerticalBottom; // 初始锁定底部
        scrGuild.SetActive(chatTab == ChatTab.Guild);
        scrGuild.SetActive(chatTab == ChatChannel.Guild);
        scrCrossServer.lockType = EnhanceLockType.LockVerticalBottom; // 初始锁定底部
        scrCrossServer.SetActive(chatTab == ChatTab.CrossServer);
        scrCrossServer.SetActive(chatTab == ChatChannel.CrossServer);
        transInput.SetActive(true);
        serversBtn.SetActive(chatTab == ChatTab.CrossServer);
        serversBtn.SetActive(chatTab == ChatChannel.CrossServer);
        CreateChatTabScroller();
        switch (chatTab)
        {
            case ChatTab.World:
            case ChatChannel.World:
                manager.nowChatChannel = ChatChannel.World;
                CreateScroller(scrWorld, ChatChannel.World);
                ScrollerJump(scrWorld, ChatChannel.World);
                ClearUnreadMsg();
                break;
            case ChatTab.Guild:
            case ChatChannel.Guild:
                manager.nowChatChannel = ChatChannel.Guild;
                CreateScroller(scrGuild, ChatChannel.Guild);
                ScrollerJump(scrGuild, ChatChannel.Guild);
                ClearUnreadMsg();
                break;
            case ChatTab.CrossServer:
            case ChatChannel.CrossServer:
                manager.nowChatChannel = ChatChannel.CrossServer;
                CreateScroller(scrCrossServer, ChatChannel.CrossServer);
                ScrollerJump(scrCrossServer, ChatChannel.CrossServer);
@@ -440,11 +443,11 @@
            scroller.m_Scorller.RefreshActiveCellViews();
        }
        if (type == ChatChannel.World && manager.nowChatTab != ChatTab.World)
        if (type == ChatChannel.World && manager.nowChatTab != ChatChannel.World)
            return;
        if (type == ChatChannel.Guild && manager.nowChatTab != ChatTab.Guild)
        if (type == ChatChannel.Guild && manager.nowChatTab != ChatChannel.Guild)
            return;
        if (type == ChatChannel.CrossServer && manager.nowChatTab != ChatTab.CrossServer)
        if (type == ChatChannel.CrossServer && manager.nowChatTab != ChatChannel.CrossServer)
            return;
        // 1. 自己发送的消息 -> 强制跳转到底部 + 清零
        if (playerId == PlayerDatas.Instance.PlayerId)