思路:
获取到每一行的首个文字的索引和末尾文字的索引,根据两个索引计算出这一行总的文字数量,从而计算出这一行的总偏移量(主要是居中和右对齐的时候需要),而根据索引我们能知道其对应的4个顶点在整个Text UI顶点中的索引,知道了文字顶点的对应的索引,知道了总偏移量,那么只需要按单行的逻辑处理就好了。
using UnityEngine;
using UnityEngine.UI;
[AddComponentMenu("UI/Effect/TextSpacing")]
[RequireComponent(typeof(UnityEngine.UI.Text))]//Text组件是必须的
public class TextSpacing : BaseMeshEffect
{
public enum HorizontalAligmentType
{
Left,
Center,
Right
}
public float fSpacing = 1.0f;
public override void ModifyMesh(VertexHelper vh)
{
if (!IsActive() || vh.currentVertCount < 4 || fSpacing == 0)
{
return;<