Exemple #1
0
        private void CreateSubItem(SChatMessageObjectInfo info, float width, ref float curOffsetX, ref float curOffsetY, List <LineObjCache> curLineObject)
        {
            if (width < 0f || curLineObject == null)
            {
                return;
            }

            ResNode itemPrefab = LogicDataCenter.chatMessageManager.GetChatItemPrefabByObjType(info.type);

            if (itemPrefab == null)
            {
                return;
            }

            GameObject itemObj = itemPrefab.InstanceMainRes();

            if (itemObj == null)
            {
                return;
            }

            IChatItem subItem = itemObj.GetComponent <IChatItem>();

            if (subItem == null)
            {
                itemPrefab.DestroyInstanceRes(ref itemObj);
                return;
            }
            subItem.SetResNode(itemPrefab);
            currChatBoxItem.Add(subItem);
            itemObj.transform.SetParent(this.transform, false);


            if (subItem.SetItemData(info) == false)
            {
                return;
            }

            for (int i = 0; i < 100; ++i)
            {
                IChatItem nextItem;
                subItem.SplitByWidth(width, curOffsetX, out subItem, out nextItem);
                if (subItem != null)
                {
                    curOffsetX += subItem.GetItemWidth();
                    AddLineObject(subItem, curLineObject);
                }

                if (nextItem == null)
                {
                    break;
                }

                AlignLineObject(ref curOffsetX, ref curOffsetY, curLineObject);
                subItem = nextItem;
                currChatBoxItem.Add(subItem);
            }
        }
Exemple #2
0
        private void AddLineObject(IChatItem item, List <LineObjCache> curLineObject)
        {
            LineObjCache objCache;

            objCache.width           = item.GetItemWidth();
            objCache.height          = item.GetItemHeight();
            objCache.trans           = item.GetTransform();
            objCache.trans.sizeDelta = new Vector2(objCache.width, objCache.height);
            curLineObject.Add(objCache);
        }