public void Start()
{
_textField.graphics.meshModifier -= OnMeshModified;
_textField.Redraw();
_textField.graphics.meshModifier += OnMeshModified;
_backupVerts.Clear();
_stroke = false;
_shadow = false;
_mainLayerStart = 0;
_mainLayerVertCount = 0;
_printIndex = 0;
_vertIndex = 0;
_started = true;
int vertCount = _textField.graphics.vertCount;
//备份所有顶点后将顶点置0
Vector3[] vertices = _textField.graphics.vertices;
Vector3 zero = Vector3.zero;
for (int i = 0; i < vertCount; i++)
{
_backupVerts.Add(vertices[i]);
vertices[i] = zero;
}
_textField.graphics.mesh.vertices = vertices;
//隐藏所有混排的对象
if (_textField.richTextField != null)
{
int ec = _textField.richTextField.htmlElementCount;
for (int i = 0; i < ec; i++)
_textField.richTextField.ShowHtmlObject(i, false);
}
int charCount = _textField.charPositions.Count;
for (int i = 0; i < charCount; i++)
{
TextField.CharPosition cp = _textField.charPositions[i];
if (cp.vertCount > 0)
_mainLayerVertCount += cp.vertCount;
}
if (_mainLayerVertCount < vertCount) //说明有描边或者阴影
{
if (vertCount == _mainLayerVertCount * 6)
{
_stroke = true;
_shadow = true;
_mainLayerStart = vertCount * 5 / 6;
_strokeLayerStart = vertCount / 6;
}
else if (vertCount == _mainLayerVertCount * 5)
{
_stroke = true;
_shadow = false;
_mainLayerStart = vertCount * 4 / 5;
_strokeLayerStart = 0;
}
else if (vertCount == _mainLayerVertCount * 2)
{
_stroke = false;
_shadow = true;
_mainLayerStart = vertCount / 2;
}
}
}