当前位置: 首页 > news >正文

Unity3D之TextMeshPro使用

文章目录

    • 1. TextMeshPro简介
    • 2. TextMeshPro创建
    • 3. TextMeshPro脚本中调用
    • 4. TextMeshPro字体设置及中文支持
    • 过程中出现的一些问题

1. TextMeshPro简介

【官网文档】https://docs.unity.cn/cn/2020.3/Manual/com.unity.textmeshpro.html

TextMeshPro 是 Unity 的最终文本解决方案。它是 Unity UI Text 和旧版 Text Mesh 的完美替代方案。

功能强大且易于使用的 TextMeshPro(也称为 TMP)使用高级文本渲染技巧以及一组自定义着色器;它大幅改进了视觉质量,同时为用户创建文本样式和纹理提供了难以置信的灵活度。

TextMeshPro 能够更好地控制文本格式和布局,提供了字符、单词、行和段落间距调整、字距调整、文本对齐、链接、超过 30 种富文本标签、多种字体和精灵支持、自定义样式等功能。

强大的性能。由于 TextMeshPro 创建的几何体与 Unity 的文本组件一样,每个字符都使用两个三角形,因此这种改进的视觉质量和灵活性不会带来任何性能成本的损失。

2. TextMeshPro创建

a. 创建一个空节点(Create Empty),添加组件(Add Component),选择Mesh->TextMeshPro-Text
在这里插入图片描述
b. 在弹出的对话框中点击Import TMP Essentials,导入即可
在这里插入图片描述
c. 在Inspector中编辑相关属性,如在TextMeshPro->Text Input中输入“Hello”,即可在屏幕中显示内容。
在这里插入图片描述

3. TextMeshPro脚本中调用

创建脚本文件(TextScript.cs),并关联到当前的TextMeshPro中

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class TextScript : MonoBehaviour
{TextMeshPro Text;// Start is called before the first frame updatevoid Start(){Application.targetFrameRate = 60;Text = GetComponent<TextMeshPro>();//获取组件}// Update is called once per framevoid Update(){Text.text = Time.time.ToString("f3");}
}

在这里插入图片描述

4. TextMeshPro字体设置及中文支持

以添加微软雅黑字体为例

  1. 下载字体
    微软雅黑:https://github.com/CroesusSo/msyh/tree/main

  2. 在Unity中创建文件夹用来存放字体,如创建Assets/Fonts/ttf文件夹,并把msyh.ttf复制到该文件夹内

  3. 打开 Font Asset Creator 窗口: Window > TextMeshPro > Font Asset Creator.
    在这里插入图片描述

  4. Font Asset Creator 窗口操作
    在这里插入图片描述

  • Source Font File: 选择你刚才放到Unity里面的中文字体。
  • Sampling Point Size / Font Size: 默认Auto Size
  • Padding: 字体中效果 (outlines, glow, bevels, etc.) 的大小,默认为5。
  • Packing Method: 创建字体的方式。Fast可用于快速预览效果,Optimum用于创建最终字体。
  • Atlas Resolution: 可以理解为分辨率。
  • Character Set: 创建的字体的字符集合,也就是说你要创建的TextMeshPro字体中,要包含的所有字符。在我们这里就是所有的中文字符。一般来说常见中文字+英文单词+符号即可。
    下拉选择Characters from File,然后选择包含所有所需字符的txt文件(需要先导入Unity)。
    txt文件下载地址:https://github.com/wy-luke/Unity-TextMeshPro-Chinese-Characters-Set
    在这里插入图片描述
    在简单的项目中,可以采用Custom Characters,然后在Custom Character List中输入项目中会用到的所有的字符即可
    在这里插入图片描述
  1. 点击Generate Font Atlas,生成Unity字体文件,同时save,保存到Assets/Fonts/msyh SDF.asset
  2. 将之前创建的TextMeshPro节点的Font Asset设置为新创建的字体Assets/Fonts/msyh SDF.asset`即可
    在这里插入图片描述

过程中出现的一些问题

  1. 生成字体过程中没有将所有字符转化,出现未转换字符(如下图)
    解决办法:将Atlas Resolution设置值变大,如改为2048x2048;
    在这里插入图片描述)
http://www.lryc.cn/news/406519.html

相关文章:

  • K8S 上部署 Prometheus + Grafana
  • 雷军的逆天改命与顺势而为
  • Leetcode 11. 盛最多水的容器
  • Java笔试分享
  • LeetCode:对称的二叉树(C语言)
  • Postman中的API Schema验证:确保响应精准无误
  • 深入浅出WebRTC—GCC
  • leetcode日记(49)旋转链表
  • InteliJ IDEA最新2024版下载安装与快速配置激活使用教程+jdk下载配置
  • 【23】Android高级知识之Window(四) - ThreadedRenderer
  • Java-根据前缀-日期-数字-生成流水号(不重复)
  • 跟李沐学AI:卷积层
  • 使用RedisTemplate操作executePipelined
  • react-native从入门到实战系列教程一环境安装篇
  • 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(下)
  • 国科大作业考试资料-人工智能原理与算法-2024新编-第十二次作业整理
  • 《0基础》学习Python——第二十一讲__网络爬虫/<4>爬取豆瓣电影电影信息
  • 【C++初阶】string类
  • RAS--APEI 报错解析流程(2)
  • 微软蓝屏事件对企业数字化转型有什么影响?
  • 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)
  • 浅谈Devops
  • 大文件分片上传(前端TS实现)
  • unity2D游戏开发02添加组件移动玩家
  • 设计模式 之 —— 单例模式
  • 深入浅出WebRTC—ULPFEC
  • Python从0到100(四十三):数据库与Django ORM 精讲
  • Redis-主从模式
  • 加速决策过程:企业级爬虫平台的实时数据分析
  • 字典树(前缀树)数组实现(只能查26个单词)