Unity3D之TextMeshPro使用

news2024/9/24 9:26:56

文章目录

    • 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 update
    void Start()
    {
        Application.targetFrameRate = 60;
        Text = GetComponent<TextMeshPro>();//获取组件
    }

    // Update is called once per frame
    void 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.coloradmin.cn/o/1944213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java 集合框架-collection(单列集合)

在编程语言中&#xff0c;我们必然少不了存储数据的容器&#xff0c;虽然我们有数组&#xff0c;但是数组是连续的开辟处一块连续的内存空间&#xff0c;如果数据过大会无法存储完&#xff0c;数据量小&#xff0c;会浪费空间&#xff0c;所以我们需要使用集合存储数据&#xf…

Qt创建自定义组件并且promote to之后导致编译错误(CMake)

创建自定组件并且加入到全局(勾选"Global include"选项)后&#xff0c;重新编译&#xff0c;元对象编译器生成的ui_xxxx.h文件中会新加入自定义组件的头文件&#xff1a; 如图所示&#xff0c;编译器提示找不到自定义组件的头文件&#xff1a; Solution: 在CMakeL…

leetcode日记(48)排列序列

这道题想到了规律就不算难&#xff0c;列了好几个示例想出的规律&#xff0c;试着排序几个就会了 class Solution { public:string getPermutation(int n, int k) {string result;int m1;int i1;for(i;i<n;i) m*i;i--;int pm/i;string s;for(int j0;j<n;j) s.append(to_…

NCRE3 2-1 网络总体设计基本方法

这部分记忆的比较多 概览 设计网络建设总体目标确定网络系统方案设计原则网络系统总体设计设计网络拓扑结构进行网络设备选型网络系统安全设计 设计网络建设总体目标 这部分视频没说到 确定网络系统方案设计原则 这部分视频没说到 网络系统总体设计 核心层网络结构设计 …

“机器说人话”-AI 时代的物联网

万物互联的物联网愿景已经提了许多年了&#xff0c;但是实际效果并不理想&#xff0c;除了某些厂商自己的产品生态中的产品实现了互联之外&#xff0c;就连手机控制空调&#xff0c;电视机和调光灯都没有实现。感觉小米做的好一点&#xff0c;而华为的鸿蒙的全场景&#xff0c;…

以flask为后端的博客项目——星云小窝

以flask为后端的博客项目——星云小窝 文章目录 以flask为后端的博客项目——星云小窝前言一、星云小窝项目——项目介绍&#xff08;一&#xff09;二、星云小窝项目——项目启动&#xff08;二&#xff09;三、星云小窝项目——项目结构&#xff08;三&#xff09;四、谈论一…

singleton 配置

​​​​​​​Is there a way to connect to a specific instance of Oracle server?https://stackoverflow.com/questions/70617760/is-there-a-way-to-connect-to-a-specific-instance-of-oracle-server 1.。。。。。。。。。。。RAC下 通过instance name 控制&#xff0c;…

react中配置路径别名@

1.说明 在react项目中想要使用代替“src/”需要在项目根目录下配置两个文件&#xff0c;craco.config.js和sconfig.json&#xff1b; craco.config.js配置文件是用于项目解读为“src/” jsconfig.json配置文件是用于vsCode在编辑过程是输入后可以将src下的文件目录进行自动联…

PS启动提示Adobe Creative Cloud丢失或损坏。您可以尝试修复来解决这个问题,如何解决

一般为找到这个路径下C:\Program Files (x86)\Common Files\Adobe\Adobe Desktop Common\ADS的Adobe Desktop Service.exe文件。如果不在C盘也可以直接搜索其他盘找到此文件。 直接删除此文件即可解决&#xff0c;如果删除不了可以进任务管理器先结束进程再删除。鼠标右键结束任…

npm上传自己的包以及发布过程遇到的问题

大家好&#xff0c;我是前端追寻路上的【酱酱仔】 作为在前端领域不断探索的一员&#xff0c;在此记录开发中遇到的问题&#xff0c;如果你也遇到了相同的问题&#xff0c;希望本文对你有帮助。 前提&#xff1a;本文涉及的命令都是在要发布的包的根目录下执行的&#xff0c;在…

自训练和增量训练word2vec模型

1、自己准备训练语料文件 根据自己的业务场景准备训练数据&#xff0c;比如用户在商城上的同购行为序列或同浏览行为序列。 我们希望通过自己训练业务相关的语料word2vec模型来获得词嵌入、词相关性查询等。 1.1 准备语料库文件 # 示例&#xff1a;准备自己的一个大规模的语…

学习记录day16—— 数据结构 双向链表 循环链表

双向链表 1、概念 1&#xff09;就是从任意一个节点既能存储其前驱节点&#xff0c;又能存储后继节点 2)结构体中增加一个指向前驱节点的指针 //定义数据类型 typedef int datatype;//定义节点类型 typedef struct Node {union {int len;datatype data;};struct Node *prio; …

k8s中部署Jenkins、SonarQube、StorageClass部署流程

部署Jenkins 系统环境&#xff1a; • kubernetes 版本&#xff1a;1.23.3 • jenkins 版本&#xff1a;2.172 • jenkins 部署示例文件 Github 地址&#xff1a;https://github.com/my-dlq/blog-example/tree/master/jenkins-deploy 一、设置存储目录 在 Kubenetes 环境下…

Kolla-Ansible的确是不支持CentOS-Stream系列产品了

看着OpenStack最新的 C 版本出来一段时间了&#xff0c;想尝个鲜、用Kolla-Ansible进行容器化部署&#xff0c;结果嘛。。。 根据实验结果&#xff0c;自OpenStack Bobcat版本开始&#xff0c;Kolla-Ansible就适合在CentOS系列产品上部署了&#xff0c;通过对 Bobcat和Caracal…

llama模型,nano

目录 llama模型 Llama模型性能评测 nano模型是什么 Gemini Nano模型 参数量 MMLU、GPQA、HumanEval 1. MMLU(Massive Multi-task Language Understanding) 2. GPQA(Grade School Physics Question Answering) 3. HumanEval llama模型 Large Language Model AI Ll…

Python教程(一):环境搭建及PyCharm安装

目录 引言1. Python简介1.1 编译型语言 VS 解释型语言 2. Python的独特之处3. Python应用全览4. Python版本及区别5. 环境搭建5.1 安装Python&#xff1a; 6. 开发工具&#xff08;IDE&#xff09;6.1 PyCharm安装教程6.2 永久使用教程 7. 编写第一个Hello World结语 引言 在当…

微服务实战系列之玩转Docker(六)

前言 刚进入大暑&#xff0c;“清凉不肯来&#xff0c;烈日不肯暮”&#xff0c;空调开到晚&#xff0c;还是满身汗。——碎碎念 我们知道&#xff0c;仓库可见于不同领域&#xff0c;比如粮食仓库、数据仓库。在容器领域&#xff0c;自然也有镜像仓库&#xff08;registry&…

【案例】使用React+redux实现一个Todomvc

About 大家好&#xff0c;我是且陶陶&#xff0c;今天跟大家分享一个redux的todoList案例&#xff0c;通过这个案例能够快速掌握redux的基本知识点&#x1f339; ❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…❤️…

超声波眼镜清洗机什么牌子好?入门级家用超声波清洗机推荐

戴眼镜的人一定都有对眼镜店的超声波清洗机清洗过的眼镜惊讶过&#xff0c;洗过之后光洁如新&#xff0c;镜片清澈透亮。最初笔者以为超声波清洗机只能用来清洗眼镜&#xff0c;没想到它还能清洗很多小玩意儿。目前市面上的超声波清洗机品牌繁多&#xff0c;今天笔者来教教大家…

QtCreator和QtDesignStudio最佳实践

一、QTC和QDS工作流概述 很多初学者对 QDS(Qt Design Studio) 和 QTC(Qt Creator)如何配合经常存有疑问&#xff0c;本文介绍具体的工作流程。 工作流程 1.产品设计&#xff1a;通过PS、Figma、XD等专业工具设计页面视觉和原型。 2.QDS 原型制作&#xff1a;导入设计源文件、…