Cleanup allocated memory.
static public int Dispose(IntPtr l) { try { UnityEngine.UI.VertexHelper self = (UnityEngine.UI.VertexHelper)checkSelf(l); self.Dispose(); pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
//5.2.1p1 public void ModifyMesh(VertexHelper vh) { if (enabled && gameObject.activeInHierarchy) { var verts = new List<UIVertex>(); var glyph = new GlyphQuad(); vh.GetUIVertexStream(verts); vh.Dispose(); for (int c = 0; c < Text.text.Length; c++) { glyph.LoadTris(verts, c * 6); float xDistance = AbsolutePosition + glyph.Rect.center.x; float tf = AbsoluteToRelative(xDistance); Vector3 pos = this.GetInterpolatedSourcePosition(tf); Vector3 tan = this.GetTangent(tf); var off = pos - Rect.localPosition - glyph.Center; // position offset to spline glyph.Transpose(new Vector3(0, glyph.Center.y, 0)); // shift to match baseline // Rotate, then offset to real position glyph.Rotate(Quaternion.AngleAxis(Mathf.Atan2(tan.x, -tan.y) * Mathf.Rad2Deg - 90, Vector3.forward)); glyph.Transpose(off); glyph.Save(vh); } } }