Пример #1
0
 public override void ToStream(Stream output)
 {
     output.Write(TLUtils.SignatureToBytes(Signature));
     output.Write(UserId.ToBytes());
     output.Write(Version.ToBytes());
     output.Write(ShareText.ToBytes());
     output.Write(Description.ToBytes());
     output.Write(Commands.ToBytes());
 }
Пример #2
0
 public override byte[] ToBytes()
 {
     return(TLUtils.Combine(
                TLUtils.SignatureToBytes(Signature),
                UserId.ToBytes(),
                Version.ToBytes(),
                ShareText.ToBytes(),
                Description.ToBytes(),
                Commands.ToBytes()));
 }
Пример #3
0
        public List <UIVertex> OnPopulateMesh(ShareText shareText)
        {
            var vert  = new List <UIVertex>();
            var child = model.child;

            if (Collector != null)
            {
                child = Collector.child;
            }
            for (int i = 0; i < child.Count; i++)
            {
                GetChildUVInfo(child[i], shareText, vert, Vector3.zero, Quaternion.identity, Vector3.one);
            }
            return(vert);
        }
Пример #4
0
        static void GetChildUVInfo(ModelElement child, ShareText ori, List <UIVertex> vertices, Vector3 position, Quaternion quate, Vector3 scale)
        {
            var     pos = child.data.localPosition;
            Vector3 p   = quate * pos;
            Vector3 o   = Vector3.zero;

            o.x = p.x * scale.x;
            o.y = p.y * scale.y;
            o.z = p.z * scale.z;
            o  += position;

            Vector3    s = child.data.localScale;
            Quaternion q = quate * child.data.localRotation;

            s.x *= scale.x;
            s.y *= scale.y;

            if (child.activeSelf)
            {
                var stc = child.GetComponent <ShareTextChildElement>();
                if (stc != null)
                {
                    if (stc.text != null & stc.text != "")
                    {
                        if (stc.IsChanged)
                        {
                            TextGenerationSettings settings = new TextGenerationSettings();
                            settings.font                 = ori.font;
                            settings.pivot                = child.data.pivot;
                            settings.generationExtents    = child.data.sizeDelta;
                            settings.horizontalOverflow   = stc.data.horizontalOverflow;
                            settings.verticalOverflow     = stc.data.verticalOverflow;
                            settings.resizeTextMaxSize    = stc.data.fontSize;
                            settings.resizeTextMinSize    = stc.data.fontSize;
                            settings.generateOutOfBounds  = stc.data.generateOutOfBounds;
                            settings.resizeTextForBestFit = false;
                            settings.textAnchor           = stc.data.textAnchor;
                            settings.fontStyle            = stc.data.fontStyle;
                            settings.scaleFactor          = 1;
                            settings.richText             = stc.data.richText;
                            settings.lineSpacing          = stc.data.lineSpacing;
                            settings.fontSize             = stc.data.fontSize;
                            settings.color                = stc.data.color;
                            settings.alignByGeometry      = stc.data.alignByGeometry;
                            stc.buffer    = ShareText.CreateEmojiMesh(ori, stc.emojiString, ref settings);
                            stc.IsChanged = false;
                        }
                    }
                    var buf = stc.buffer;
                    if (buf != null)
                    {
                        UIVertex[] vert = new UIVertex[buf.Length];
                        Array.Copy(buf, vert, buf.Length);
                        for (int i = 0; i < vert.Length; i++)
                        {
                            vert[i].position.x *= s.x;
                            vert[i].position.y *= s.y;
                            vert[i].position    = q * vert[i].position + o;
                        }
                        vertices.AddRange(vert);
                    }
                }
                for (int i = 0; i < child.child.Count; i++)
                {
                    GetChildUVInfo(child.child[i], ori, vertices, o, q, s);
                }
            }
        }
Пример #5
0
 public override void LoadToObject(Component game)
 {
     base.LoadToObject(game);
     shareText         = Context as ShareText;
     shareText.context = this;
 }