public override void Copy(SpriteRoot s, ControlCopyFlags flags) { base.Copy(s, flags); if (!(s is UIBtnWWW)) { return; } LinkText linkText = (LinkText)s; if ((flags & ControlCopyFlags.Settings) == ControlCopyFlags.Settings) { this.linkTextType = linkText.linkTextType; } }
public static LinkText LinkText(string name, EmoticonInfo.ChatTextInfo chatTextInfo, ITEM linkItem, Color color, string defaultColor, SpriteText.Font_Effect fontEffect) { UIBaseInfoLoader uIBaseInfoLoader = UIBaseFileManager.FindUIImageDictionary(name, "Com_I_Transparent"); if (uIBaseInfoLoader == null) { return(null); } GameObject gameObject = new GameObject(name); LinkText linkText = gameObject.AddComponent <LinkText>(); linkText.UpdateText = true; linkText.gameObject.layer = GUICamera.UILayer; linkText.SetAnchor(SpriteRoot.ANCHOR_METHOD.UPPER_LEFT); linkText.linkTextType = chatTextInfo.linkTextType; linkText.CreateSpriteText(); if (chatTextInfo.linkTextType == UnityForms.LinkText.TYPE.PLAYER) { if (10 >= chatTextInfo.normalText.Length || string.Compare(chatTextInfo.normalText, 0, "[#", 0, 2) != 0 || chatTextInfo.normalText[10] != ']') { linkText.ColorText = defaultColor; } linkText.NormalColorText = defaultColor; linkText.OverColorText = MsgHandler.HandleReturn <string>("GetTextColor", new object[] { "1302" }); } else { string text = string.Empty; if (chatTextInfo.linkTextType == UnityForms.LinkText.TYPE.COUPON) { text = MsgHandler.HandleReturn <string>("GetTextColor", new object[] { "1306" }); } else if (fontEffect == SpriteText.Font_Effect.White_Shadow_Small) { text = MsgHandler.HandleReturn <string>("GetTextColor", new object[] { "1206" }); } else { text = MsgHandler.HandleReturn <string>("GetTextColor", new object[] { "1107" }); } linkText.ColorText = text; linkText.NormalColorText = text; linkText.OverColorText = text; } linkText.MultiLine = false; linkText.BaseString = chatTextInfo.normalText; linkText.textKey = chatTextInfo.textKey; linkText.SetCharacterSize(chatTextInfo.fontSize); linkText.SetFontEffect(fontEffect); linkText.Text = linkText.ColorText + chatTextInfo.normalText; if (chatTextInfo.linkTextType == UnityForms.LinkText.TYPE.ITEM) { linkText.data = linkItem; } linkText.SetSpriteTile(uIBaseInfoLoader.Tile, uIBaseInfoLoader.UVs.width / (float)uIBaseInfoLoader.ButtonCount, uIBaseInfoLoader.UVs.height); Material material = (Material)CResources.Load(uIBaseInfoLoader.Material); linkText.Setup(linkText.spriteText.TotalWidth, linkText.spriteText.TotalHeight, material); float pixelToUVsWidth = UIBaseFileManager.GetPixelToUVsWidth(material, uIBaseInfoLoader.UVs.width / (float)uIBaseInfoLoader.ButtonCount); Rect rect = new Rect(UIBaseFileManager.GetPixelToUVsWidth(material, uIBaseInfoLoader.UVs.x) - pixelToUVsWidth, 1f - UIBaseFileManager.GetPixelToUVsHeight(material, uIBaseInfoLoader.UVs.y + uIBaseInfoLoader.UVs.height), pixelToUVsWidth, UIBaseFileManager.GetPixelToUVsHeight(material, uIBaseInfoLoader.UVs.height)); Rect uvs = new Rect(rect); uvs.x += pixelToUVsWidth; for (int i = 0; i < (int)uIBaseInfoLoader.ButtonCount; i++) { linkText.States[i].spriteFrames = new CSpriteFrame[1]; linkText.States[i].spriteFrames[0] = new CSpriteFrame(); rect.x += pixelToUVsWidth; if ((int)uIBaseInfoLoader.ButtonCount <= i) { linkText.States[i].spriteFrames[0].uvs = uvs; } else { linkText.States[i].spriteFrames[0].uvs = rect; } linkText.animations[i].SetAnim(linkText.States[i], i); } linkText.autoResize = false; linkText.SetState(0); linkText.Start(); return(linkText); }