public void SetData(ChatBoxContentItemData data) { // 重复SetData的问题先这么写,以后再看 RectTransform selfTrans = this.RectTransform; if (selfTrans == null) { return; } if (m_curSequenceID == data.info.sequenceID && m_curWidth == selfTrans.rect.width) { return; } m_curSequenceID = data.info.sequenceID; m_curWidth = selfTrans.rect.width; ChatContentItem item = gameObject.GetComponent <ChatContentItem>(); if (item != null) { ChatContentItemData itemData = new ChatContentItemData(); itemData.objList = data.info.objList; item.SetData(itemData); m_Height = item.Height; } else { Debug.LogError("item == null, This GameObject have no ChatContentItem component."); } }
public virtual void setData(SChatMessageInfo info) { ChatContentItemData itemData = new ChatContentItemData(); itemData.objList = info.objList; itemData.Height = 0; // 设置最大宽度 RectTransform rect = transform as RectTransform; rect.sizeDelta = new Vector2(MaxWidth, rect.sizeDelta.y); ChatContentItem contentItem = gameObject.GetComponent <ChatContentItem>(); if (contentItem != null) { contentItem.SetData(itemData); } else { Debug.LogError("contentItem == null, This GameObject have no ChatContentItem component."); } m_startTime = Time.time; m_isClosed = false; }
public void SetData(SNSHistroyMsgItem data) { m_nMsgID = data.nMsgID; string name = data.szName; string time = Api.convertTimeStamp2DateTime(data.nTime).ToString("yyyy-MM-dd HH:mm"); string content = data.szContent; Transform nameTrans = transform.FindChild("Name"); if (nameTrans == null) { return; } Transform timeTrans = transform.FindChild("Time"); if (timeTrans == null) { return; } Transform contentTrans = transform.FindChild("Content"); if (contentTrans == null) { return; } if (isSelf(data.nFromAcountID)) { name = "<color=#40A3FEFF> " + name + "</color>"; time = "<color=#40A3FEFF> " + time + "</color>"; } nameTrans.GetComponent <Text>().text = name; timeTrans.GetComponent <Text>().text = time; //transform.FindChild("MsgContent").GetComponent<Text>().text = content; // 设置content的最大宽度 RectTransform contentRect = contentTrans as RectTransform; contentRect.sizeDelta = new Vector2(MaxWidth, contentRect.sizeDelta.y); // 设置内容并获取高度 float contentHeight = 0; ChatContentItem item = contentTrans.GetComponent <ChatContentItem>(); if (item != null) { ChatContentItemData itemData = new ChatContentItemData(); itemData.objList = data.objList; item.SetData(itemData); contentHeight = item.Height; } else { Debug.LogError("item == null, This GameObject have no ChatContentItem component."); } // 设置内容的大小 float contentWidth = contentRect.sizeDelta.x; contentRect.sizeDelta = new Vector2(contentWidth, contentHeight); // 计算总高度 m_Height = Math.Abs(contentRect.anchoredPosition.x) + contentHeight + MarginY; if (m_Height < MinHeight) { m_Height = MinHeight; } // 设置DefautItem高度 RectTransform rect3 = transform as RectTransform; rect3.sizeDelta = new Vector2(rect3.sizeDelta.x, m_Height); }
public void SetData(SNSMsgContentItem data) { m_nMsgID = data.info.msg.dwMsgID; Transform curTrans = null; if (isSelf(data.info.msg.dwFromAccountID)) { curTrans = rightTrans; leftTrans.gameObject.SetActive(false); rightTrans.gameObject.SetActive(true); } else { curTrans = leftTrans; leftTrans.gameObject.SetActive(true); rightTrans.gameObject.SetActive(false); } Transform timeTrans = curTrans.FindChild("Time"); if (timeTrans == null) { return; } Transform bubbleTrans = curTrans.FindChild("Bubble"); if (bubbleTrans == null) { return; } Transform contentTrans = curTrans.FindChild("Bubble/Content"); if (contentTrans == null) { return; } Image avatar = curTrans.FindChild("Avatar").GetComponent <Image>(); if (avatar == null) { return; } SNSDataManager.BuddyInfo buddy = LogicDataCenter.snsDataManager.getBuddyInfoByUserID(data.info.msg.dwFromAccountID); // 设置头像 avatar.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_PlayerHead, WndID.WND_ID_SNS_MAINPANEL, 1, buddy.Info.nSex + 1); timeTrans.GetComponent <Text>().text = Api.convertTimeStamp2DateTime(data.info.msg.dwTime).ToString("yyyy-MM-dd HH:mm"); // 设置content的最大宽度 RectTransform contentRect = contentTrans as RectTransform; contentRect.sizeDelta = new Vector2(MaxWidth, contentRect.sizeDelta.y); //contentRect.anchoredPosition = new Vector2(contentRect.anchoredPosition.x, 0); float contentHeight = 0; ChatContentItem item = contentTrans.GetComponent <ChatContentItem>(); if (item != null) { ChatContentItemData itemData = new ChatContentItemData(); itemData.objList = data.info.objList; item.SetData(itemData); contentHeight = item.Height; } else { Debug.LogError("item == null, This GameObject have no ChatContentItem component."); } // 设置内容的大小 float contentWidth = contentRect.sizeDelta.x; contentRect.sizeDelta = new Vector2(contentWidth, contentHeight); // 气泡与内容之间的边缘大小 Vector2 Margin; Margin.x = Math.Abs(contentRect.anchoredPosition.x); Margin.y = Math.Abs(contentRect.anchoredPosition.y); // 计算气泡的大小 RectTransform bubbleRect = bubbleTrans as RectTransform; bubbleRect.sizeDelta = new Vector2(contentWidth + Margin.x * 2, contentHeight + Margin.y * 2); float bubbleHeight = bubbleRect.sizeDelta.y; // 设置时间的坐标(时间显示在聊天内容下面),坐标为负数 float timePosY = bubbleRect.anchoredPosition.y + (-bubbleHeight); RectTransform timeRect = timeTrans as RectTransform; timeRect.anchoredPosition = new Vector2(timeRect.anchoredPosition.x, timePosY); // 计算总高度 m_Height = Math.Abs(bubbleRect.anchoredPosition.y) + bubbleHeight + TimeHeight + MarginY; if (m_Height < MinHeight) { m_Height = MinHeight; } // 设置总高度 RectTransform rect2 = curTrans as RectTransform; rect2.sizeDelta = new Vector2(rect2.sizeDelta.x, m_Height); // 设置DefautItem高度 RectTransform rect3 = transform as RectTransform; rect3.sizeDelta = new Vector2(rect3.sizeDelta.x, m_Height); m_Height = 0; }