/// <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(); } }
void FontTextureRebuilt(Font font) { Late = 2; point = 1; max = 0; TxtCollector.Clear(); Collection(transform, -1, 0); try { TxtCollector.GenerateTexture(true); } catch { } }
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(); }