Files
JJBB/Assets/Project/Script/GUI/Chat/ChatHistoryLogicHelper.cs

80 lines
1.8 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00

using UnityEngine;
using UnityEngine.UI;
using System;
using System.Collections;
using System.Collections.Generic;
using Games.GlobeDefine;
using Games.ChatHistory;
using Games.Item;
using GCGame.Table;
using GCGame;
using Module.Log;
using Google.ProtocolBuffers;
public class ChatHistoryLogicHelper : ChatHistoryLogic
{
public GameObject _ChatHelperPrefabMy;
public GameObject _ChatHelperPrefabAI;
public void OnDisable()
{
PlayerPreferenceData.SetFriendChatHistory(GameManager.gameManager.PlayerDataPool.ChatHistory.FriendChatList);
}
public void Update()
{
ContentUpdate();
}
#region chat history
public void OnReceiveChat(ChatHistoryItem history)
{
HandleChatHistory(history);
}
protected override void HandleChatHistory(ChatHistoryItem history, bool isShowLast = false)
{
if (history.SenderGuid == GlobeVar.SYSFRIEND_GUID)
{
var chatLogInfo = GetIdleChatLogItem(_ChatHelperPrefabAI);
chatLogInfo.SetChatLog(history);
}
else
{
var chatLogInfo = GetIdleChatLogItem(_ChatHelperPrefabMy);
chatLogInfo.SetChatLog(history);
}
}
#endregion
#region content pos
private float _LastContentHeight;
public void ContentUpdate()
{
//if (_LastContentHeight == 0)
//{
// _LastContentHeight = _ChatLogContent.rect.height;
// return;
//}
if (_LastContentHeight != _ChatLogContent.rect.height)
{
float delta = _ChatLogContent.rect.height - _LastContentHeight;
_LastContentHeight = _ChatLogContent.rect.height;
if (delta > 500)
{
_ChatLogContent.anchoredPosition = new Vector2(0, - delta - 150);
}
}
}
#endregion
}