一、问题

在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<UIVertex> 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<UIVertex>(); }vh.GetUIVertexStream(mVertexList);int row = 1;int column = 2;List<UIVertex> 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 <=min_row_left= " + (tem_row_left <= min_row_left).ToString());if (min_row_left-tem_row_left >=-10 ){min_row_left = tem_row_left;++row;column = 1;//continue;}}for (int j = 0; j < 6; j++){UIVertex vertex = mVertexList[i];vertex.position += Vector3.right * (column - 1) * spacing_x;vertex.position += Vector3.down * (row - 1) * spacing_y;mVertexList[i] = vertex;++i;}++column;}vh.Clear();vh.AddUIVertexTriangleStream(mVertexList);}
}

Unity Text字间距和行间距调整相关推荐

  1. wps图片与图片间距怎么调整_wps图片与图片间距怎么调整_微信图文排版,字间距,行间距,怎么调整合适?......

    常见的有两种排版,一种传统报纸形式,另一种就是大家常用的新媒体排版形式. 行间距 通常图片和文字之间要留空一行,这样阅读体验不会显得那么乏味,枯燥.留空一行显得简洁更加美观,能大大提升阅读者继续往下看 ...

  2. ios label文字行间距_ios实践之Label 字间距、行间距、两端对齐、分行显示

    UILabel算是iOS里使用最多的控件了吧,下面来说说它特殊的应用需求吧 一.设置字间距.行间距 这是一个比较常见的需求了 写一个UILabel的分类 @interface UILabel (ext ...

  3. CSS入门五:文本样式;字体颜色:英文字母,十六进制,RGB;文本颜色,字间距,行间距,对齐方式;下划线、上划线…,文本阴影,字母大小写,首行缩进

    CSS入门部分已经了解了:CSS简介.样式表分类,内部样式表简单使用:选择器和类选择器简单使用:背景色.背景图:以及外部样式表的简单使用: 本篇博客主要介绍,如何对文本设置,包括字体颜色:字间距,行间 ...

  4. ai字体行间距怎么调整_ai字间距怎么调-调整ai字间距的方法 - 河东软件园

    Adobe Illustrator是用来处理矢量图形的工具之一,相信经常接触设计的用户都会使用它吧?这款软件在学习制作它的效果制作技巧之前我们应该要对它的工具有所了解,很多用户在正在开始接触之前会使用 ...

  5. html怎样调节字间距,css怎么调整字间距?

    css文字与文字之间的间距怎么调整?相信有很多小伙伴都会有这样的疑问.本章就给大家介绍css设置文字间距的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 一.css word- ...

  6. fabricJs 在vue项目中的实战记录(四)添加文字以及文字的操作[字体大小、颜色、字间距、行间距、透明度、加粗、斜体、下划线、删除线、对齐方式、字体设置]

    在阅读以下文章的基础上查看本篇笔记: 第一篇:fabricJs 在vue项目中的实战记录(一)引入以及初始化 第二篇:fabricJs 在vue项目中的实战记录(二)fabricjs设置海报背景(图片 ...

  7. QT字间距和行间距设置

    2019独角兽企业重金招聘Python工程师标准>>> QGraphicsTextItem  字间距: void QFont::setLetterSpacing ( SpacingT ...

  8. css:图像与文字(对齐、字间距、行间距、阴影)

    图像与文字对齐方式 第一种:text-align:center: (水平居中对齐) 第二种:vertical-align:text-top/text-bottom/middle:(垂直顶端对齐.底部对 ...

  9. Android设置字间距和行间距

    设置字间距用: android:letterSpacing eg: android:letterSpacing = "1.2" 其相关方法是 setLetterSpacing(fl ...

最新文章

  1. 清华大学计算机李雪,李雪 | 北京外国语大学国际商学院|International Business School,BFSU|本硕博,北外留学,来华留学Solbridge,EDP...
  2. 下列哪个不是目前python里的内置模块-不吹不擂,你想要的Python面试都在这里了【315+道题】...
  3. freemarker常见语法大全,灰常有用!
  4. AGC011D - Half Reflector(模拟)
  5. 单反相机内部光线反射原理
  6. Linux 运维人最常用 150 个命令汇总
  7. linux终端下载vscode,如何在Ubuntu18上安装VScode
  8. SpringBoot使用AOP,PointCut表达式详解以及使用
  9. vector.resize 与 vector.reserve的区别(转载)
  10. 妙算2的串口用自己的接线(杜邦线)连接无人机210或者stm32
  11. 海瑞——一个奇特的人
  12. 年龄在线计算机,年龄计算器在线计算2021 抖音上很火的精确年龄岁数计算器查询 - 房贷计算器...
  13. 关于百度网盘离线下载链接无效的问题
  14. 计算机必修课程英语单词,《计算机专业英语》课程标准(已审核).doc
  15. UE4人物冲刺瞬移多段跳
  16. Craps 赌博游戏 含押注
  17. 隐写术-----黑与白(二)
  18. coursera python_如何最高效且自由地收看Coursera
  19. Druid数据库连接池监控的使用
  20. Python图形界面不够美?三行代码全面美化你的Tkinter界面

热门文章

  1. 如何使用Python计算Log中两个时间的差值
  2. Mybatis拦截器修改sql语句
  3. 在QT中展示两个chart
  4. PS2022版本修复打开闪退问题
  5. foxmail服务器邮箱登录,服务器foxmail邮箱登陆
  6. 北京内推 | 百度AIG知识图谱部招聘NLP算法实习生
  7. 代码阅读神器Source Insight
  8. CNN与RNN的详细介绍
  9. adb调式问题总述(oppo小游戏【快应用】打包调试)
  10. 关于香港 Web3 形势的若干观点