Пример #1
0
        /// <summary>
        /// 信息采集
        /// </summary>
        /// <param name="trans"></param>
        void Collection(Transform trans, int parent, int index)
        {
            PipeLine[index].parentIndex   = parent;
            PipeLine[index].localPosition = trans.localPosition;
            PipeLine[index].localRotation = trans.localRotation;
            PipeLine[index].localScale    = trans.localScale;
            PipeLine[index].trans         = trans;
            var act    = PipeLine[index].active = trans.gameObject.activeSelf;
            var script = trans.GetComponent <UIElement>();

            PipeLine[index].script = script;
            bool mask = false;

            if (script != null)
            {
                mask = script.Mask;
                script.PipelineIndex = index;
                scripts[max]         = script;
                max++;
                if (mask)
                {
                    TxtCollector.Next();
                }
                var txt = script as HText;
                if (txt != null)
                {
                    TxtCollector.AddText(txt, act);
                }
            }
            PipeLine[index].script = script;
            int c = trans.childCount;

            PipeLine[index].childCount = c;
            int s = point;

            point += c;
            PipeLine[index].childOffset = s;
            if (act)
            {
                for (int i = 0; i < c; i++)
                {
                    Collection(trans.GetChild(i), index, s);
                    s++;
                }
            }
            if (mask)
            {
                TxtCollector.Back();
            }
        }
Пример #2
0
 void FontTextureRebuilt(Font font)
 {
     Late  = 2;
     point = 1;
     max   = 0;
     TxtCollector.Clear();
     Collection(transform, -1, 0);
     try
     {
         TxtCollector.GenerateTexture(true);
     }
     catch
     {
     }
 }
Пример #3
0
 private void LateUpdate()
 {
     point = 1;
     max   = 0;
     TxtCollector.Clear();
     Collection(transform, -1, 0);
     for (int i = 0; i < max; i++)
     {
         scripts[i].MainUpdate();
     }
     TxtCollector.GenerateTexture(true);
     Batch();
     ApplyMeshRenderer();
     ApplyToCamera();
 }