using System.Collections; using UnityEngine; using UnityEngine.UI; using EnhancedUI.EnhancedScroller; public class ChatPlayerOtherCell : ScrollerUI { // [SerializeField] AvatarCell avatarCell; [SerializeField] RectTransform m_avatarRect; [SerializeField] Text m_VipLv; [SerializeField] Text m_PlayerName; [SerializeField] Text m_ChatTime; [SerializeField] ChatBubbleBehaviour m_ChatBubble; [SerializeField] float spacing = 5.0f; // PhantasmPavilionModel phantasmPavilionModel { get { return ModelCenter.Instance.GetModel(); } } public override void Refresh(CellView cell) { var data = ChatCenter.Instance.GetChatData(ChatManager.Instance.presentChatType, cell.index); if (data == null) { return; } var chatUserData = data as ChatUeseData; // AvatarModel avatarModel = AvatarHelper.GetOtherAvatarModel(chatUserData.face, chatUserData.facePic, chatUserData.job); // avatarCell.InitUI(avatarModel); // avatarCell.button.SetListener(() => // { // OnFunc(cell); // }); m_PlayerName.text = chatUserData.name; m_ChatTime.text = data.createTime.ToString("yyyy-MM-dd HH:mm"); if (chatUserData.vipLv > 0) { m_VipLv.text = "VIP";//string.Format("V{0}", chatUserData.vipLv); } else { m_VipLv.text = string.Empty; } m_ChatBubble.DisplayContent(data.content, true); // int bubbleID = phantasmPavilionModel.GetNowOtherChatBubbleID(chatUserData.bubbleId); // m_ChatBubble.DisplayBubble(bubbleID); } private void OnFunc(CellView cell) { int index = cell.index; ChatData _data = ChatCenter.Instance.GetChatData(ChatManager.Instance.presentChatType, index); if (_data == null) { return; } ChatUeseData user = _data as ChatUeseData; if (user.player == PlayerDatas.Instance.baseData.PlayerID) { return; } if (user.serverGroupId == 0 || user.serverGroupId == PlayerDatas.Instance.baseData.ServerGroupId) { // TODO YYL // PlayerDetails.ShowPlayerDetails(user.player, null); } else { // TODO YYL // PlayerDetails.ShowCrossServerChatPlayer(user); } } public float GetHeight(string content, ArrayList list) { var minHeight = m_avatarRect.sizeDelta.y; var chatHeight = m_ChatBubble.GetBubbleHeight(content, list) + Mathf.Abs(m_ChatBubble.transform.localPosition.y); return (chatHeight > minHeight ? chatHeight : minHeight) + spacing; } }