示例#1
0
        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.");
            }
        }
示例#2
0
        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;
        }
示例#3
0
        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);
        }
示例#4
0
        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;
        }