Unity TextMeshPro实现富文本超链接默认字体追加字体

实践过程

富文本

芝麻粒儿提醒:标签是成对出现的就不要省略,有的不是成对的在修改了后就恢复过来,如下方alpha示例,否则多了很容易出现意外的错误效果。

芝麻粒儿提醒:

粗体标签
斜体标签
下划线标签
删除线标签
上标标签前面后面上标签 5C
下标标签,如:H2O
文字大小
文字大小-百分比
默认大小上再增加文字大小
默认大小上减去指定文字大小
距离左侧的缩进,可以实现类似首行缩进的,文字大小不同这个值缩进程度不同
颜色标签写法一
<#00ff00>颜色标签写法二
明度 变化

左对齐也是默认对齐
居中对齐
右对齐
1. 缩进15%.
多行有效
2. 缩进100像素
多行有效
3. 缩进5em
多行有效
4. 缩进15%.
1em字体单位间距
10像素字体单位间距
-10像素缩小间距
使用 different font?或者使用不同材质?
50%行间距
行间距
100%行间距
正常

150%
行间距
行缩进只影响单行显示,多行不受影响
ABCDEFG
ABCDEFG
AbcdeFg
设置 标注 前面是标注,需要透明度
 取消标签的作用,如b加粗没效果
内置样式名
设定高可用宽度,超出后即使没换行会自动换行的
点击这 网站 俩字 跳转,需要额外脚本

Unity TextMeshPro实现富文本超链接默认字体追加字体_第1张图片

超链接脚本

[RequireComponent(typeof(TMP_Text))]
public class LinkOpener : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        TMP_Text pTextMeshPro = GetComponent();
        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。

Unity TextMeshPro实现富文本超链接默认字体追加字体_第2张图片

Unity TextMeshPro实现富文本超链接默认字体追加字体_第3张图片

设置默认字体

如果你没有进经过这一步,你每创建一个TextMesh组件,里面的字体默认还是系统的,还得我们一个个找到自己的字体修改设置。有两种方式修改全局默认,这样每创建TextMesh都是我们自己的字体:

方式一:Edit > Project Settings > TextMesh Pro Settings修改该字形。

Unity TextMeshPro实现富文本超链接默认字体追加字体_第4张图片

方式二:找到TextMeshPro的设置文件,默认就在(你的项目)/Assets/TextMesh Pro/Resources中一个叫TMP Settings的文件。修改TMP Settings中的Default Font Asset即可。

Unity TextMeshPro实现富文本超链接默认字体追加字体_第5张图片

追加额外字符

如果你一开始就不是直接生成的全部文字的字体库,随着项目的更新总会遇见某些字符你没有提前设置如字体资源库中,这时候就有两种方案:

重新生成一个全的,直接替换掉你原来的。

找到TMP Settings或者直接找到那个SDF字体文件,会发现有个Fallback Font Assets的属性,点击加号就可以继续添加额外的SDF字体库资源文件。

以上就是Unity TextMeshPro实现富文本超链接默认字体追加字体的详细内容,更多关于Unity TextMeshPro富文本字体的资料请关注脚本之家其它相关文章!

你可能感兴趣的:(Unity TextMeshPro实现富文本超链接默认字体追加字体)