Unity Text字间距和行间距调整 您所在的位置:网站首页 怎样调整行间距之间的间距 Unity Text字间距和行间距调整

Unity Text字间距和行间距调整

2023-10-08 03:40| 来源: 网络整理| 查看: 265

 一、问题

在3D场景中常见文字,通过调整字体大小和锚点放大文字和清晰度,但是无法调整字间距,同时网上资料可以调整字间距,但是换行前面会出现空白。

 二、解决办法

通过重新ModifyMesh函数到达调整字间距,同时同调试发现需要给一定误差范围来解决换行前面出现空白问题。

 

 

 TextSpacing.cs

using UnityEngine; using System.Collections; using UnityEngine.UI; using System; using System.Collections.Generic; using System.Linq; [AddComponentMenu("UI/Effects/TextSpacing")] public class TextSpacing : BaseMeshEffect { [SerializeField] private float spacing_x; [SerializeField] private float spacing_y; private List mVertexList; public override void ModifyMesh(VertexHelper vh) { if (spacing_x == 0 && spacing_y == 0) { return; } if (!IsActive()) { return; } int count = vh.currentVertCount; if (count == 0) { return; } if (mVertexList == null) { mVertexList = new List(); } vh.GetUIVertexStream(mVertexList); int row = 1; int column = 2; List sub_vertexs = mVertexList.GetRange(0, 6); float min_row_left = sub_vertexs.Min(v => v.position.x); int vertex_count = mVertexList.Count; for (int i = 6; i < vertex_count;) { if (i % 6 == 0) { sub_vertexs = mVertexList.GetRange(i, 6); float tem_row_left = sub_vertexs.Min(v => v.position.x); Debug.LogError("min_row_left=" + min_row_left.ToString() + " tem_row_left=" + tem_row_left.ToString() + " tem_row_left


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有