示例#1
0
    public void Recalc(Mesh mesh)
    {
        if (NeedUpdateBuffer())
        {
            BeginSample("ApplyLength");
            ApplyLength();
            EndSample();
        }

        if (NeedUpdateInline())
        {
            BeginSample("ApplyInlineColor");
            ApplyInlineColor();
            EndSample();
        }
        else if(!m_spriteText.InlineColor)
        {
            m_displayedText = m_spriteText.Text;
        }

        if (NeedUpdateGeom())
        {
            BeginSample("ResetGeom");
            ResetGeom();
            EndSample();

            BeginSample("ParseText");
            ParseText();
            EndSample();

            BeginSample("ApplyPivot");
            ApplyPivot();
            EndSample();

            BeginSample("ApplyAlignment");
            ApplyAlignment();
            EndSample();
        }

        if (NeedUpdateColor())
        {
            BeginSample("ApplyColor");
            ApplyColor();
            EndSample();
        }

        if (NeedUpdateGeom())
        {
            BeginSample("ApplyScale");
            ApplyScale();
            EndSample();
        }

        BeginSample("Apply geom to mesh");
        if (NeedUpdateBuffer())
        {
            BeginSample("Clear mesh");
            mesh.Clear();
            EndSample();
        }
        if (NeedUpdateGeom())
        {
            BeginSample("Set vertices and uv");
            mesh.subMeshCount = m_triangles.Length;
            mesh.vertices = m_vertixes;
            mesh.uv = m_uv;
            for (int i = 0; i < m_triangles.Length; i++)
            {
                mesh.SetTriangles(m_triangles[i], i);
            }
            EndSample();
        }
        if (NeedUpdateColor())
        {
            BeginSample("Set colors");
            mesh.colors = m_colors;
            EndSample();
        }
        if (NeedUpdateBuffer())
        {
            BeginSample("Recalculate bounds and normals");
            mesh.RecalculateBounds();
            mesh.RecalculateNormals();
            EndSample();
        }
        EndSample();

        m_flags = SpriteTextFlags.UpdateNone;
    }
示例#2
0
 public void SetChanged(SpriteTextFlags flag)
 {
     m_flags |= flag;
 }
示例#3
0
 private void SetChanged(SpriteTextFlags flag)
 {
     Geom.SetChanged(flag);
 }