Unity TextMeshPro实现富文本超链接默认字体追加字体
作者:芝麻粒儿 发布时间:2021-10-13 23:57:24
标签:Unity,TextMeshPro,富文本,字体链接
实践过程
😜富文本
芝麻粒儿提醒:标签是成对出现的就不要省略,有的不是成对的在修改了后就恢复过来,如下方alpha示例,否则多了很容易出现意外的错误效果。
芝麻粒儿提醒:
<b>粗体标签</b>
<i>斜体标签</i>
<u>下划线标签</u>
<s>删除线标签</s>
<sup>上标标签</sup>前面后面上标签 5<sup>。</sup>C
<sub>下标标签,如:</sub>H<sub>2</sub>O
<size=48>文字大小</size>
<size=55%>文字大小-百分比</size>
<size=+18>默认大小上再增加文字大小</size>
<size=-18>默认大小上减去指定文字大小</size>
<pos=40>距离左侧的缩进,可以实现类似首行缩进的,文字大小不同这个值缩进程度不同
<color=yellow>颜色标签写法一</color>
<#00ff00>颜色标签写法二</color>
<alpha=#FF>正 <alpha=#CC>在 <alpha=#AA>进 <alpha=#88>行 <alpha=#66>透 <alpha=#44>明度 <alpha=#22>的 <alpha=#00>变化
<alpha=#FF>
<align="left">左对齐<sprite=2>也是默认对齐</align>
<align="center">居中对齐<sprite=2></align>
<align="right">右对齐<sprite=5></align>
1. <indent=15%>缩进15%.
多行有效</indent>
2. <indent=100>缩进100像素
多行有效</indent>
3. <indent=5em>缩进5em
多行有效</indent>
4. <indent=15%>缩进15%.
<cspace=1em>1em字体单位间距</cspace>
<cspace=10>10像素字体单位间距</cspace>
<cspace=-4>-10像素缩小间距
使用 <font="LiberationSans SDF">different font?</font>或者使用<font="YouYuan SDF" material="YouYuan SDF - Outline">不同材质?
<line-height=50%>50%行间距
行间距</line-height>
<line-height=100%>100%行间距
正常</line-height>
<line-height=150%>
150%
行间距</line-height>
<line-indent=15%>行缩进只影响单行显示,多行不受影响</line-indent>
<lowercase>ABCDEFG</lowercase>
<uppercase>ABCDEFG</uppercase>
<smallcaps>AbcdeFg</smallcaps>
设置 <mark=#ff0000aa>标注</mark> 前面是标注,需要透明度
<noparse><b></noparse> 取消标签的作用,如b加粗没效果
<style=H1>内置</style><style=H2>的</style><style=C1>样式名</style>
<width=50%>设定高可用宽度,超出后即使没换行会自动换行的</width>
<link="https://zhima.blog.csdn.net/">点击这 网站 俩字 跳转,需要额外脚本</link>
😜超链接脚本
[RequireComponent(typeof(TMP_Text))]
public class LinkOpener : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
TMP_Text pTextMeshPro = GetComponent<TMP_Text>();
int linkIndex =
TMP_TextUtilities.FindIntersectingLink(pTextMeshPro, eventData.position,
null); // If you are not in a Canvas using Screen Overlay, put your camera instead of null
if (linkIndex != -1)
{
// was a link clicked?
TMP_LinkInfo linkInfo = pTextMeshPro.textInfo.linkInfo[linkIndex];
Application.OpenURL(linkInfo.GetLinkID());
}
}
}
😜3D中使用
除了UI使用TextPro外,3D场景中也能用。创建个空物体,我们添加组件TextMeshPro -Text组件,注意不是TextMeshPro -Text (UI)组件。特别注意不挂UI。
😜设置默认字体
如果你没有进经过这一步,你每创建一个TextMesh组件,里面的字体默认还是系统的,还得我们一个个找到自己的字体修改设置。有两种方式修改全局默认,这样每创建TextMesh都是我们自己的字体:
方式一:Edit > Project Settings > TextMesh Pro Settings修改该字形。
方式二:找到TextMeshPro的设置文件,默认就在(你的项目)/Assets/TextMesh Pro/Resources中一个叫TMP Settings的文件。修改TMP Settings中的Default Font Asset即可。
😜追加额外字符
如果你一开始就不是直接生成的全部文字的字体库,随着项目的更新总会遇见某些字符你没有提前设置如字体资源库中,这时候就有两种方案:
重新生成一个全的,直接替换掉你原来的。
找到TMP Settings或者直接找到那个SDF字体文件,会发现有个Fallback Font Assets的属性,点击加号就可以继续添加额外的SDF字体库资源文件。
来源:https://juejin.cn/post/7168643400558706696
0
投稿
猜你喜欢
- Java执行hadoop的基本操作实例代码向HDFS上传本地文件public static void uploadInputFile(Str
- 逆时针画圆弧,原理:将360度分割成36份,分别标出每10度角度时的坐标点,然后将每个点连接起来。 #include <io
- 介绍:kaptcha 是谷歌开源的非常实用的验证码生成工具一、导入jar包<!-- kaptcha验证码 --><depe
- 前言项目中检测人脸图片是否合法的功能,之前用的是百度的人脸识别接口,由于成本高昂不得不寻求替代方案。什么是opencv?OpenCV是一个基
- 1.概述Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。Spring MVC的特
- 目录1,基本介绍2,HttpURLConnection实现3.HttpClient实现4.Spring的RestTemplate1,基本介绍
- 1. this 引用1.1 为什么要有this引用先来写一个日期类的例子:public class classCode { &
- 一个请求从客户端发出到达服务器,然后被处理的整个过程其实是非常复杂的。本博客主要介绍请求到达服务器被核心组件DispatcherServle
- HttpServletRequest介绍HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HT
- 1.概述在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要
- 方式一 通过Map.keySet使用iterator遍历@Testpublic void testHashMap1() { Map<I
- 1、SpringBoot配置文件1.1 优先级关于SpringBoot配置文件可以是properties或者是yaml格式的文件,但是在Sp
- 什么是异步调用?异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等
- JOL简介JOL的全称是Java Object Layout。是一个用来分析JVM中Object布局的小工具。包括Object在内存中的占用
- 解释:二叉树的深度:从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。二叉树的宽度:二叉树的每一层中
- 简述mysq5.7之后新增了json类型,但是在使用的过程中,Json数组中的值小于Integer.MAX_VALUE,则反序列化时会转成L
- 1. interrupt知识点 以下总结基于JDK8本文不会完整说明interrupt,只会罗列一些比较重要的点。完整了解Thre
- 配置详情pom.xmldependency> <groupId>com.baomidou<
- 关于SQLiteSQLite是一款轻型的嵌入式的遵守ACID的关系型数据库管理系统,诞生已有15个年头了。随着移动互联的发展,现在得到了更广
- 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。下面的章节分为上下两篇,