Exemple #1
0
        private void CreateVoiceLabel(CharInfoNode node)
        {
            var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatVoiceCell.prefab");

            if (obj == null)
            {
                return;
            }
            obj.SetActive(true);
            voiceCell = obj.GetComponent <ChatVoiceCellLogic>();
            if (voiceCell == null)
            {
                return;
            }

            voiceCell.SetChatInfo(FontSize, chatDataMsg.Seconds, MaxWidth);
            voiceCell.Seconds   = chatDataMsg.Seconds;
            voiceCell.SoundData = chatDataMsg.SoundData;
            var objTransform = obj.transform;

            //objTransform.parent = Content.transform;
            objTransform.SetParentEX(Content.transform);
            objTransform.localScale    = Vector3.one;
            objTransform.localPosition = new Vector3(xPos, yPos, 0);

            obj.SetActive(true);
            AddXPos(200);
            xPos = 10;
            AddVoiceLabel();
        }
Exemple #2
0
    private void CreateVoiceLabel(CharInfoNode node)
    {
        //var objres = ResourceManager.PrepareResourceSync<GameObject>("UI/ChatMain/ChatVoiceCell.prefab");
        //var obj = Instantiate(objres) as GameObject;
        var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatVoiceCell.prefab");

        if (obj == null)
        {
            return;
        }
        mVoiceCell = obj.GetComponent <ChatVoiceCellLogic>();
        if (mVoiceCell == null)
        {
            return;
        }
        mVoiceCell.SetChatInfo(FontSize, mChatMessageData.Seconds, MaxLineWidth);
        //mVoiceCell.ChatMessageData = mChatMessageData;
        mVoiceCell.Seconds   = mChatMessageData.Seconds;
        mVoiceCell.SoundData = mChatMessageData.SoundData;
        var objTransform = obj.transform;

        //objTransform.parent = BackGround.transform;
        objTransform.SetParentEX(BackGround.transform);
        obj.SetActive(true);
        objTransform.localScale    = Vector3.one;
        objTransform.localPosition = new Vector3(mPositionX, mPositionY, 0);

        mTotalLength = MaxLineWidth;
        mPositionX   = 10;
        AddVoiceLabel();
    }
Exemple #3
0
    private void CreateTextLabel(string value)
    {
        var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatLableNode.prefab");

        if (obj == null)
        {
            return;
        }
        var objTransform = obj.transform;

        //objTransform.parent = BackGround.transform;
        objTransform.SetParentEX(BackGround.transform);
        obj.gameObject.collider.enabled = false;
        obj.SetActive(true);
        var label = obj.GetComponent <UILabel>();

        var sbstr = "";
        var text  = "";


        label.fontSize       = FontSize;
        NGUIText.fontSize    = label.fontSize;
        NGUIText.finalSize   = label.fontSize;
        NGUIText.dynamicFont = label.trueTypeFont;
        if (mPositionX > MaxLineWidth)
        {
            ChangeLine();
        }
        NGUIText.regionWidth     = MaxLineWidth - mPositionX;
        NGUIText.maxLines        = 10000;
        NGUIText.pixelDensity    = 1.0f;
        NGUIText.regionHeight    = 10000;
        NGUIText.finalLineHeight = label.fontSize;
        NGUIText.fontScale       = 1.0f;
        NGUIText.WrapText(value, out sbstr, false, true);

        var index = sbstr.IndexOf("\n");

        if (index > -1)
        {
            text = sbstr.Substring(0, index);
        }
        else
        {
            text = sbstr;
        }
        SetLableStroke(label);
        SetLableColor(label, text);
        objTransform.localPosition = new Vector3(mPositionX, mPositionY, 0);
        objTransform.localScale    = Vector3.one;
        //positionX += label.width;
        AddPositionX(label.width);
        sbstr = sbstr.Remove(0, text.Length);
        if (sbstr.Length > 0)
        {
            ChangeLine();
            sbstr = sbstr.Replace("\n", "");
            CreateTextLabel(sbstr);
        }
    }
Exemple #4
0
    public void CreateObj(int dataId, int colorId)
    {
        if (mObjElf != null)
        {
            mObjElf.Destroy();
            mObjElf = null;
        }
        if (dataId == -1)
        {
            return;
        }

        var angle = gameObject.transform.rotation.eulerAngles.y;

        angle += 90.0f;
        var temp = Owner.Position;

        temp.x += (float)Math.Cos(angle) * Radius;
        temp.z += (float)Math.Sin(angle) * Radius;
        NavMeshHit hit;

        if (NavMesh.Raycast(Owner.Position, temp, out hit, -1))
        {
            temp = hit.position;
        }

        InitBaseData initData = new InitOtherPlayerData
        {
            ObjId   = 0,
            DataId  = dataId,
            X       = temp.x,
            Y       = temp.y,
            Z       = temp.z,
            DirX    = 1,
            DirZ    = 0,
            Name    = "",
            RobotId = 0ul
        };

        var go  = ComplexObjectPool.NewObjectSync(Resource.PrefabPath.Elf);
        var elf = go.GetComponent <ObjElf>();

        elf.Init(initData, () =>
        {
            mObjElf = elf;
            mObjElf.OnElfMoveOver = OnElfMoveOver;
            mObjElf.DoIdle();
            var character = gameObject.GetComponent <ObjCharacter>();
            if (character)
            {
                mObjElf.SetMoveSpeed(character.GetMoveSpeed() + 0.08f);
                ObjFakeCharacter.ChangeColor(mObjElf.GetModel(), colorId);
            }
        });
        go.SetActive(true);
    }
Exemple #5
0
    public static Actor Create(int dateId,
                               Dictionary <int, int> equipList = null,
                               Action <Actor> callback         = null,
                               int layer          = 0,
                               bool sync          = false,
                               bool dynamicShadow = false)
    {
        var initData = new InitOtherPlayerData
        {
            ObjId     = 0,
            DataId    = dateId,
            X         = Offset += 10,
            Y         = -1000,
            Z         = -2000,
            DirX      = 1,
            DirZ      = 0,
            Name      = "",
            IsDead    = false,
            IsMoving  = false,
            MoveSpeed = 0,
            Camp      = 0,
            RobotId   = 0ul
        };

        if (null != equipList)
        {
            {
                // foreach(var pair in equipList)
                var __enumerator2 = (equipList).GetEnumerator();
                while (__enumerator2.MoveNext())
                {
                    var pair = __enumerator2.Current;
                    {
                        initData.EquipModel.Add(pair.Key, pair.Value);
                    }
                }
            }
        }

        var go = ComplexObjectPool.NewObjectSync(Resource.PrefabPath.Actor);

        go.layer = layer;
        var character = go.GetComponent <Actor>();

        character.mIsDynamicShadow = dynamicShadow;
        character.SyncLoadModel    = sync;
#if UNITY_EDITOR
        go.name = "Actor" + "_" + initData.ObjId;
#endif
        character.Init(initData, () => { callback(character); });
        go.SetActive(true);
        return(character);
    }
Exemple #6
0
    private void InitRes(string color)
    {
        if (_resPaths.ContainsKey(color))
        {
            if (!_colorObjs.ContainsKey(color))
            {
                _colorObjs[color] = ComplexObjectPool.NewObjectSync(_resPaths[color]);
                if (_colorObjs[color] == null)
                {
                    return;
                }
            }

            var trans = _colorObjs[color].transform;
            trans.parent         = gameObject.transform;
            trans.localPosition  = Vector3.zero;
            trans.localPosition += new Vector3(0, -0.58f, 0); // ÌØЧλÖÃÐÞÕý
            trans.localScale     = Vector3.one;
            _colorObjs[color].SetActive(true);
            StartCoroutine(EffectRemoveCoroutine(2f, _colorObjs[color]));
        }
    }
        private void CreateFaceLabel(NoticeData node)
        {
            var obj = ComplexObjectPool.NewObjectSync("UI/RechargeActivity/RechargeActivityIcon.prefab");

            if (obj == null)
            {
                return;
            }
            _mObj.Add(obj);
            var faceSprite   = obj.GetComponent <UISprite>();
            var objTransform = obj.transform;

            objTransform.SetParentEX(BackGround.transform);
            objTransform.localScale = Vector3.one;
            obj.SetActive(true);
            var faceWidth  = PicWidth;    //(int)(FontSize * 2.0f);
            var faceHeight = PicWidth;    // (int)(FontSize * 2.0f);

            faceSprite.width  = faceWidth;
            faceSprite.height = faceHeight;
            if (MaxLineWidth < mPositionX + faceWidth)
            {
                mPositionX  = (int)(FontSize * 0.5f);
                mPositionY -= mLineOffset + FontSize;
            }
            var picPos = mPositionY + (PicWidth - FontSize) / 2;
            var iconId = node.IconId;
            var tbFace = Table.GetIcon(iconId);

            if (tbFace == null)
            {
                return;
            }
            GameUtils.SetSpriteIcon(faceSprite, tbFace.Atlas, tbFace.Sprite);
            _mNeedSetLine = false;
            objTransform.localPosition = new Vector3(mPositionX, picPos, 0);
            //  Logger.Info("FaceLabel:{0},{1}", objTransform.localPosition.x, objTransform.localPosition.y);
            AddPositionX(faceWidth);
        }
    public static ObjFakeCharacter Create(int dateId,
                                          Dictionary <int, int> equipList    = null,
                                          Action <ObjFakeCharacter> callback = null,
                                          int layer       = 0,
                                          bool sync       = false,
                                          int renderQueue = -1,
                                          ulong objId     = 0,
                                          int colorId     = -1)
    {
        var initData = new InitOtherPlayerData
        {
            ObjId     = objId,
            DataId    = dateId,
            X         = Offset += 10,
            Y         = -1000,
            Z         = -2000,
            DirX      = 0,
            DirZ      = 1,
            Name      = "",
            IsDead    = false,
            IsMoving  = false,
            MoveSpeed = 0,
            Camp      = 0,
            RobotId   = 0ul
        };

        if (null != equipList)
        {
            {
                // foreach(var pair in equipList)
                var __enumerator2 = (equipList).GetEnumerator();
                while (__enumerator2.MoveNext())
                {
                    var pair = __enumerator2.Current;
                    {
                        initData.EquipModel.Add(pair.Key, pair.Value);
                    }
                }
            }
        }

        var go = ComplexObjectPool.NewObjectSync(Resource.PrefabPath.FakeCharacter);

        go.layer = layer;
        var character = go.GetComponent <ObjFakeCharacter>();

        character.SyncLoadModel = sync;
        character.RenderQueue   = renderQueue;
#if UNITY_EDITOR
        go.name = "ObjFakeCharacter" + "_" + initData.ObjId;
#endif
        go.SetActive(true);
        var model = character.GetModel();
        if (model != null)
        {
            model.SetActive(false);
        }
        character.Init(initData, () =>
        {
            callback(character);
            model = character.GetModel();
            if (model != null)
            {
                ChangeColor(model, colorId);
                //var frequency = model.GetComponent<AnimationUpdateFrequencyController>();
                //if (frequency)
                //{
                //    frequency.enabled = false;
                //}
                model.SetActive(true);
                //if (!model.animation.isActiveAndEnabled)
                //    model.animation.enabled = true;
            }
        });

        return(character);
    }
Exemple #9
0
    private void CreateObjAsync <T>(InitBaseData initData,
                                    string prefabPath,
                                    GameObject root     = null,
                                    Action <T> callBack = null)
        where T : ObjBase
    {
        if (mObjDict.ContainsKey(initData.ObjId))
        {
            Logger.Warn("mObjPool.ContainsKey[{0}]", initData.ObjId.ToString());
            RemoveObj(initData.ObjId);
        }

        //ResourceManager.PrepareResource<GameObject>(prefabPath, prefab =>
        {
            var pos         = new Vector3(initData.X, initData.Y, initData.Z);
            var go          = ComplexObjectPool.NewObjectSync(prefabPath);
            var goTransform = go.transform;

            goTransform.localPosition = pos;
            goTransform.localRotation = Quaternion.identity;

            if (null != root)
            {
                goTransform.parent = root.transform;
            }
#if UNITY_EDITOR
            go.name = string.Format("[{0}]({1})_{2}", initData.Name, initData.DataId, initData.ObjId);
#endif
            go.SetActive(true);
            var obj = go.GetComponent <T>();
            try
            {
                obj.Init(initData, () =>
                {
                    if (null != callBack)
                    {
                        callBack(obj);
                    }
                });
            }
            catch (Exception e)
            {
                Logger.Error("Create obj[{0}] failed! error:[{1}]", initData.ObjId, e.ToString());
#if !UNITY_EDITOR
                ComplexObjectPool.Release(go);
#endif
            }

            if (initData.UseFakeModel)
            {
                mFakeList.Add(initData.ObjId);
            }

            mObjDict.Add(initData.ObjId, obj);
            if (!IsInit)
            {
                Table.ForeachWarFlag((tb) =>
                {
                    WarFlagDictionary.Add(tb.Id, tb.FlagModel);
                    return(true);
                });
                IsInit = true;
            }
            if (WarFlagDictionary.ContainsValue(initData.DataId))
            {
                EventDispatcher.Instance.DispatchEvent(new UpdateWarFlagModelEvent(initData.ObjId, 0, initData.DataId));
            }
            else if (GameUtils.GetNpcLodeID(initData.DataId) > 0)
            {
                EventDispatcher.Instance.DispatchEvent(new UpdateWarFlagModelEvent(initData.ObjId, 1, initData.DataId));
            }
            else
            {
                var e1 = new Character_Create_Event(initData.ObjId);
                EventDispatcher.Instance.DispatchEvent(e1);
            }
            //Logger.Info("CreateObjAsync Obj[{0}]", initData.ObjId.ToString());
        }
        //);
    }
Exemple #10
0
        private void CreateItemLabel(CharInfoNode node)
        {
            var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatLableNode.prefab");

            if (obj == null)
            {
                return;
            }
            var objTransform = obj.transform;

            objTransform.SetParentEX(Content.transform);
            obj.gameObject.collider.enabled = true;

            obj.SetActive(true);
            var label = obj.GetComponent <UILabel>();

            ColliderList.Add(obj.gameObject);
            var sbstr = "";
            var text  = "";

            label.fontSize = FontSize;

            NGUIText.fontSize        = label.fontSize;
            NGUIText.finalSize       = label.fontSize;
            NGUIText.dynamicFont     = label.trueTypeFont;
            NGUIText.regionWidth     = MaxWidth - xPos;
            NGUIText.pixelDensity    = 1.0f;
            NGUIText.maxLines        = 10000;
            NGUIText.regionHeight    = 10000;
            NGUIText.finalLineHeight = label.fontSize;
            NGUIText.fontScale       = 1.0f;
            var chatLogic = obj.GetComponent <ChatLableLogic>();

            chatLogic.InfoNode = node;
            var tbTable  = Table.GetItemBase(node.NodeData.Id);
            var value    = tbTable.Name;
            var itemClor = GameUtils.GetTableColor(tbTable.Quality);

            //label.color = itemClor;
            NGUIText.WrapText(value, out sbstr, false, true);
            var index = sbstr.IndexOf("\n");

            label.text = "[" + GameUtils.ColorToString(itemClor) + "]" + "[" + value + "]" + "[-]";
            label.text = value;
            var y = yPos;

            if (index > -1)
            {
                xPos = (int)(FontSize * 0.5f);

                var height = 0;
                if (isFace)
                {
                    height = (int)(FontSize * FaceScale);
                    isFace = false;
                }
                else
                {
                    height = FontSize;
                }
                height            += LineOffset;
                y                 -= height;
                BackGround.height += height;
                Content.height    += height;
            }
            else
            {
                if (isFace)
                {
                    y -= FontSize;
                }
            }

            label.gameObject.transform.localPosition = new Vector3(xPos, y, 0);
            objTransform.localScale = Vector3.one;
            AddXPos(label.width);
        }
Exemple #11
0
        private void CreateFaceLabel(CharInfoNode node)
        {
            var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatFaceNode.prefab");

            if (obj == null)
            {
                return;
            }
            obj.SetActive(true);
            var faceSprite   = obj.GetComponent <UISprite>();
            var objTransform = obj.transform;

            //objTransform.parent = Content.transform;
            objTransform.SetParentEX(Content.transform);
            objTransform.localScale = Vector3.one;

            obj.SetActive(true);
            var faceWidth  = (int)(FontSize * FaceScale);
            var faceHeight = (int)(FontSize * FaceScale);

            faceSprite.width  = faceWidth;
            faceSprite.height = faceHeight;
            if (MaxWidth < xPos + faceWidth)
            {
                //换行

                xPos = (int)(FontSize * 0.5f);

                if (isFace)
                {
                    var y = FontSize * FaceScale;
                    yPos -= (int)y;
                    BackGround.height += (int)y;
                    Content.height    += FontSize;
                    isFace             = false;
                }
                else
                {
                    yPos -= FontSize;
                    BackGround.height += FontSize;
                    Content.height    += FontSize;
                }
                yPos -= LineOffset;


                WidgetList.Clear();
            }
            var face   = node.NodeData.Id;
            var tbFace = Table.GetFace(face);

            if (tbFace == null)
            {
                return;
            }
            if (isFace == false)
            {
                isFace = true;
                var c = WidgetList.Count;
                for (var i = 0; i < c; i++)
                {
                    var w = WidgetList[i];
                    var l = w.transform.localPosition;
                    l.y -= FontSize * (FaceScale - 1.0f) * 0.5f;
                    w.transform.localPosition = l;
                }
            }

            faceSprite.spriteName = tbFace.Name + "_1";
            var ani = obj.GetComponent <UISpriteAnimation>();

            ani.namePrefix = tbFace.Name + "_";
            var faceY = yPos;

            objTransform.localPosition = new Vector3(xPos, faceY, 0);
            AddXPos(faceWidth);
        }
Exemple #12
0
    private void CreatePostionLabel(CharInfoNode node)
    {
        //var objres = ResourceManager.PrepareResourceSync<GameObject>("UI/ChatMain/ChatLableNode.prefab");
        //var obj = Instantiate(objres) as GameObject;
        var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatLableNode.prefab");

        if (obj == null)
        {
            return;
        }
        var objTransform = obj.transform;

        //objTransform.parent = BackGround.transform;
        objTransform.SetParentEX(BackGround.transform);
        obj.gameObject.collider.enabled = true;
        obj.SetActive(true);
        var chatLogic = obj.GetComponent <ChatLableLogic>();

        chatLogic.InfoNode = node;
        var label = obj.GetComponent <UILabel>();

        mColliderObjects.Add(obj.gameObject);
        var sbstr = "";
        var text  = "";

        //SetLableColor(label);
        label.fontSize           = FontSize;
        NGUIText.fontSize        = label.fontSize;
        NGUIText.finalSize       = label.fontSize;
        NGUIText.dynamicFont     = label.trueTypeFont;
        NGUIText.regionWidth     = MaxLineWidth - mPositionX;
        NGUIText.pixelDensity    = 1.0f;
        NGUIText.maxLines        = 10000;
        NGUIText.regionHeight    = 10000;
        NGUIText.finalLineHeight = label.fontSize;
        NGUIText.fontScale       = 1.0f;
        var sceneId = node.NodeData.ExData[0];
        var x       = node.NodeData.ExData[1];
        var y       = node.NodeData.ExData[2];

        var tbScene = Table.GetScene(sceneId);
        var strDic  = GameUtils.GetDictionaryText(242011);
        var value   = String.Format(strDic, tbScene.Name, x / 100, y / 100);

        NGUIText.WrapText(value, out sbstr, false, true);
        label.text = value;
        var index = sbstr.IndexOf("\n");

        if (index > -1)
        {
            mPositionX = (int)(FontSize * 0.5f);
            var height = mLineOffset;
            if (mLineFace)
            {
                height    = (int)(FontSize * FaceScale);
                mLineFace = false;
            }
            else
            {
                height = FontSize;
            }
            mPositionY        -= height;
            BackGround.height += height;
        }
        label.gameObject.transform.localPosition = new Vector3(mPositionX, mPositionY, 0);
        objTransform.localScale = Vector3.one;
        AddPositionX(label.width);
    }
Exemple #13
0
    private void CreateItemLabel(CharInfoNode node)
    {
        //var objres = ResourceManager.PrepareResourceSync<GameObject>("UI/ChatMain/ChatLableNode.prefab");
        //var obj = Instantiate(objres) as GameObject;
        var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatLableNode.prefab");

        if (obj == null)
        {
            return;
        }

        var objTransform = obj.transform;

        //objTransform.parent = BackGround.transform;
        objTransform.SetParentEX(BackGround.transform);
        obj.gameObject.collider.enabled = true;
        obj.SetActive(true);
        var label = obj.GetComponent <UILabel>();

        mColliderObjects.Add(obj.gameObject);
        var sbstr = "";
        var text  = "";

        label.fontSize = FontSize;

        NGUIText.fontSize        = label.fontSize;
        NGUIText.finalSize       = label.fontSize;
        NGUIText.dynamicFont     = label.trueTypeFont;
        NGUIText.regionWidth     = MaxLineWidth - mPositionX;
        NGUIText.pixelDensity    = 1.0f;
        NGUIText.maxLines        = 10000;
        NGUIText.regionHeight    = 10000;
        NGUIText.finalLineHeight = label.fontSize;
        NGUIText.fontScale       = 1.0f;
        var chatLogic = obj.GetComponent <ChatLableLogic>();

        chatLogic.InfoNode = node;
        var nodeNodeDataExDataCount0 = node.NodeData.ExData.Count;
        var tbTable  = Table.GetItemBase(node.NodeData.Id);
        var value    = tbTable.Name;
        var itemClor = GameUtils.GetTableColor(tbTable.Quality);

        //label.color = itemClor;
        NGUIText.WrapText(value, out sbstr, false, true);

        var index = sbstr.IndexOf("\n");

        label.text = "[" + GameUtils.ColorToString(itemClor) + "]" + "[" + value + "]" + "[-]";
        if (index > -1)
        {
            mPositionX = (int)(FontSize * 0.5f);

            var height = 0;
            if (mLineFace)
            {
                height    = (int)(FontSize * FaceScale);
                mLineFace = false;
            }
            else
            {
                height = FontSize;
            }
            height            += mLineOffset;
            mPositionY        -= height;
            BackGround.height += height;
        }
        label.gameObject.transform.localPosition = new Vector3(mPositionX, mPositionY, 0);
        objTransform.localScale = Vector3.one;
        AddPositionX(label.width);
    }
Exemple #14
0
    private void CreateFaceLabel(CharInfoNode node)
    {
//         var objres = ResourceManager.PrepareResourceSync<GameObject>("UI/ChatMain/ChatFaceNode.prefab");
//
//         var obj = Instantiate(objres) as GameObject;
        var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatFaceNode.prefab");

        if (obj == null)
        {
            return;
        }

        var faceSprite   = obj.GetComponent <UISprite>();
        var objTransform = obj.transform;

        //objTransform.parent = BackGround.transform;
        objTransform.SetParentEX(BackGround.transform);
        objTransform.localScale = Vector3.one;
        obj.SetActive(true);
        var faceWidth  = (int)(FontSize * FaceScale);
        var faceHeight = (int)(FontSize * FaceScale);

        faceSprite.width  = faceWidth;
        faceSprite.height = faceHeight;
        if (MaxLineWidth < mPositionX + faceWidth)
        {
            mPositionX = (int)(FontSize * 0.5f);

            if (mLineFace)
            {
                var y = FontSize * FaceScale;
                mPositionY        -= (int)y;
                BackGround.height += (int)y;
                mLineFace          = false;
            }
            else
            {
                mPositionY        -= FontSize;
                BackGround.height += FontSize;
            }
            mPositionY -= mLineOffset;
        }
        var face   = node.NodeData.Id;
        var tbFace = Table.GetFace(face);

        if (tbFace == null)
        {
            return;
        }
        mLineFace             = true;
        faceSprite.spriteName = tbFace.Name + "_1";
        var ani = obj.GetComponent <UISpriteAnimation>();

        ani.namePrefix = tbFace.Name + "_";
        var faceY = mPositionY;

        if (IsCenter)
        {
            faceY += (int)(FontSize * (FaceScale - 1.0f) / 2.0f);
        }
        objTransform.localPosition = new Vector3(mPositionX, faceY, 0);
        AddPositionX(faceWidth);
    }
Exemple #15
0
    private void CreateTextLabel(string value, bool isNewTeam = false, CharInfoNode node = null)
    {
        var obj = ComplexObjectPool.NewObjectSync("UI/ChatMain/ChatLableNode.prefab");

        if (obj == null)
        {
            return;
        }
        var objTransform = obj.transform;

        //objTransform.parent = BackGround.transform;
        objTransform.SetParentEX(BackGround.transform);
        obj.gameObject.collider.enabled = false;
        obj.SetActive(false);
        NetManager.Instance.StartCoroutine(DelayShowTextLabel(obj));
        var label = obj.GetComponent <UILabel>();

        var sbstr = "";
        var text  = "";


        label.fontSize       = FontSize;
        NGUIText.fontSize    = label.fontSize;
        NGUIText.finalSize   = label.fontSize;
        NGUIText.dynamicFont = label.trueTypeFont;
        if (mPositionX > MaxLineWidth)
        {
            ChangeLine();
        }
        NGUIText.regionWidth     = MaxLineWidth - mPositionX;
        NGUIText.maxLines        = 10000;
        NGUIText.pixelDensity    = 1.0f;
        NGUIText.regionHeight    = 10000;
        NGUIText.finalLineHeight = label.fontSize;
        NGUIText.fontScale       = 1.0f;
        NGUIText.WrapText(value, out sbstr, false, true);

        var index = sbstr.IndexOf("\n");

        if (index > -1)
        {
            text  = sbstr.Substring(0, index);
            sbstr = sbstr.Remove(0, text.Length).Trim();
            if (!string.IsNullOrEmpty(sbstr))
            {
                int symbol      = 0;
                var lastSymbol1 = text.LastIndexOf('[');
                var lastSymbol2 = text.LastIndexOf(']');

                if (lastSymbol1 >= 0 && lastSymbol2 >= 0 && 7 == lastSymbol2 - lastSymbol1)
                {
                    var lastEnd = text.LastIndexOf("[-]");
                    if ((lastEnd < 0 || lastEnd < lastSymbol1) && sbstr.IndexOf("[-]") >= 0)
                    {
                        text += "[-]";
                        var colstr = text.Substring(lastSymbol1, 8);
                        sbstr = colstr + sbstr;
                    }
                }
            }
        }
        else
        {
            text  = sbstr;
            sbstr = sbstr.Remove(0, text.Length).Trim();
        }
        SetLableStroke(label);
        SetLableColor(label, text);
        objTransform.localPosition = new Vector3(mPositionX, mPositionY, 0);
        objTransform.localScale    = Vector3.one;
        //positionX += label.width;
        AddPositionX(label.width);
        //sbstr = sbstr.Remove(0, text.Length);
        if (isNewTeam || mChatMessageData.Ladder == -1)
        {
            obj.gameObject.collider.enabled = true;
            var chatLogic = obj.GetComponent <ChatLableLogic>();
            chatLogic.InfoNode = node;
            chatLogic.param    = mChatMessageData.Ladder;
            if (null != label)
            {
                NGUITools.UpdateWidgetCollider(label.gameObject);
            }
        }
        if (!string.IsNullOrEmpty(sbstr))
        {
            ChangeLine();
            sbstr = sbstr.Replace("\n", "");
            CreateTextLabel(sbstr, isNewTeam, node);
        }
    }
        private void CreateTextLabel(NoticeData noticeNotice)
        {
            var value = noticeNotice.Content;
            var obj   = ComplexObjectPool.NewObjectSync("UI/RechargeActivity/RechargeActivityText.prefab");

            if (obj == null)
            {
                return;
            }
            _mObj.Add(obj);
            _mVarObjList.Add(new GameObjectType(obj, noticeNotice.Type));
            var objTransform = obj.transform;

            objTransform.SetParentEX(BackGround.transform);
            obj.SetActive(true);
            var label = obj.GetComponent <UILabel>();

            var sbstr = "";
            var text  = "";


            label.fontSize     = FontSize;
            NGUIText.fontSize  = label.fontSize;
            NGUIText.finalSize = label.fontSize;
            if (mPositionX > MaxLineWidth)
            {
                ChangeLine();
            }
            NGUIText.dynamicFont     = label.trueTypeFont;
            NGUIText.regionWidth     = MaxLineWidth - mPositionX;
            NGUIText.maxLines        = 10000;
            NGUIText.pixelDensity    = 1.0f;
            NGUIText.regionHeight    = 10000;
            NGUIText.finalLineHeight = label.fontSize;
            NGUIText.fontScale       = 1.0f;
            NGUIText.WrapText(value, out sbstr, false, true);
            var index = sbstr.IndexOf("\n");

            if (index > -1)
            {
                text = sbstr.Substring(0, index);
            }
            else
            {
                text = sbstr;
            }
            objTransform.localScale    = Vector3.one;
            objTransform.localPosition = new Vector3(mPositionX, mPositionY, 0);
            //Logger.Info("TextLabel:{0},{1},{2}", objTransform.localPosition.x, objTransform.localPosition.y,text);
            label.text = text;
            //positionX += label.width;
            AddPositionX(label.width);
            sbstr = sbstr.Remove(0, text.Length);
            if (sbstr.Length > 0)
            {
                ChangeLine();
                index = sbstr.IndexOf("\n");
                sbstr = sbstr.Substring(index + "\n".Length, sbstr.Length - "\n".Length);
                var notice = new NoticeData(eNoticeType.Text, -1, sbstr);
                CreateTextLabel(notice);
            }
        }