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.mzph.cn/bicheng/50707.shtml

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

相关文章

软件测试---Linux

Linux命令使用&#xff1a;为了将来工作中与服务器设备进行交互而准备的技能&#xff08;远程连接/命令的使用&#xff09;数据库的使用&#xff1a;MySQL&#xff0c;除了查询动作需要重点掌握以外&#xff0c;其他操作了解即可什么是虚拟机 通过虚拟化技术&#xff0c;在电脑…

第九十七周周报

学习时间&#xff1a; 2024.7.20-2024.7.26 学习产出&#xff1a; 这周科研暂时没有进展&#xff0c;因为服务器这周都进不去&#xff0c;周一的时候上周跑的节点还被停了&#xff08;机房太热&#xff09;&#xff0c;然后这周主要在改吉安县小程序的bug&#xff0c;因为要…

刷新当前页面

一, reload 直接刷新页面 window.location.reload(); $router.go(0);相当于按了 F5, 因此缺点也很明显, 体验感不佳, 因为要加载所有页面资源相对较慢, 比较耗时. 二, Vue Router 刷新当前页面 这个时候, 我们通过 $router.push 一个 refresh 路由的形式实现, 具体步骤如下:…

Leetcode49. 字母异位词分组(java实现)

今天我来给大家分享的是leetcode49的解题思路&#xff0c;题目描述如下 如果没有做过leetcode242题目的同学&#xff0c;可以先把它做了&#xff0c;会更好理解异位词的概念。 本道题的大题思路是&#xff1a; 首先遍历strs&#xff0c;然后统计每一个数组元素出现的次数&#…

电商数据精细化运营解决方案(18页PPT)

方案介绍&#xff1a; 电商数据精细化运营解决方案通过全面、深入的数据分析与应用&#xff0c;助力电商企业实现精细化管理和精准化营销&#xff0c;从而在激烈的市场竞争中脱颖而出。 部分方案内容&#xff1a;

Prometheus 监控Tomcat等java应用的状态

5月应用服务出现问题&#xff0c;当别的小伙伴问我&#xff0c;有没有Tomcat等应用状态的监控的时候&#xff0c;我有点儿尴尬。所以赶紧抽空部署一下。 在配置之前&#xff0c;就当已经会安装jdk和tomcat了。 一、下载jmx_exporter #linux下 cd /usr/local/prometheus wget …

Docker入门指南:Linux系统下的完整安装步骤与常见问题解答

本文以centos7演示。 Docker安装 可参考官方安装文档&#xff1a;Install Docker Engine on CentOS | Docker Docs 一图流&#xff1a; # 移除旧版本docker sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logro…

将一个url文件链接下载到本地的方法,以及从url中提取并创建一个文件保存路径,以及m3u8文件的解析及下载

最近工作中&#xff0c;遇到了讲一个m3u8的文件下载到本地&#xff0c;使用代码如下&#xff1a; import urllib.requestm3u8file os.path.join(folderPath, dirName .m3u8) urllib.request.urlretrieve(m3u8url, m3u8file) 不过上述代码有个小问题&#xff0c;就是需要使用…

Debug-018-elementUI-el-tree中通过CSS隐藏任意一项的选择框checkbox

前情提要&#xff1a; 我们项目中使用的是elementUI&#xff0c;业务中经常需要使用到el-tree组件去实现一些有层级关系的功能。现在有一个需求描述一下&#xff1a;首先是这个el-tree是个有checkbox的树&#xff0c;每一子节点都可以被选择&#xff0c;用于去实现一些系统的权…

PHP多场地预定小程序系统源码

一键畅游多地&#xff01;多场地预定小程序的超实用指南 段落一&#xff1a;【开篇&#xff1a;告别繁琐&#xff0c;预订新体验】 &#x1f389;&#x1f680; 还在为多个活动或会议的场地预订而头疼不已吗&#xff1f;多场地预定小程序来拯救你啦&#xff01;它像是一位贴心…

【QT】QT 窗口(菜单栏、工具栏、状态栏、浮动窗口、对话框)

Qt 窗口是通过 QMainWindow类来实现的。 QMainWindow 是一个为用户提供主窗口程序的类&#xff0c;继承自 QWidget 类&#xff0c;并且提供了⼀个预定义的布局。QMainWindow 包含一个菜单栏&#xff08;Menu Bar&#xff09;、多个工具栏&#xff08;Tool Bars&#xff09;、…

7.26总结

1.我发现我的界面非常不符合要求&#xff0c;魔改了一下界面 2.在此基础上实现了编辑资料的功能&#xff0c;之前的编辑资料不够用完善&#xff0c;现在将所有数据存入数据库&#xff0c; 然后将更改的图片路径存到了服务端的文件夹&#xff0c;文件名为id更方便获取图片&…

Cuda编程模型中常见的错误检测方法

Cuda编程模型中常见的错误检测方法 1 CUDA错误检测简介2 直接嵌入检测函数2.1 检测函数介绍2.2 使用示例 3 封装在.cuh头文件中嵌入3.1 创建 error.cuh 头文件3.2 在 CUDA 程序中包含 error.cuh 并调用 CHECK 宏3.3 使用示例 1 CUDA错误检测简介 CUDA编程模型中的错误检测是确…

C++ - char*、const char*、char[]、string

const char* const char* 用来定义字符串常量。 char[ ] char型的字符数组是一种定长的数组&#xff0c;存储指定长度的字符序列&#xff0c;数组中的每个元素都是一个char类型的变量&#xff0c;如&#xff1a; char arr[] {h, a, l, l, o, \0}; char c arr[0]; // 访问…

【二叉树 C++DFS】2458. 移除子树后的二叉树高度

本文涉及知识点 二叉树 CDFS LeetCode 2458. 移除子树后的二叉树高度 给你一棵 二叉树 的根节点 root &#xff0c;树中有 n 个节点。每个节点都可以被分配一个从 1 到 n 且互不相同的值。另给你一个长度为 m 的数组 queries 。 你必须在树上执行 m 个 独立 的查询&#xff…

模式Hash和history

vuerouter有两种路由模式Hash和history。区别&#xff1a;Hash为默认模式&#xff0c;url中包含一个#符号的哈希部分。优势&#xff1a;兼容性好&#xff0c;不需要后端服务器的特殊配置。缺点&#xff1a;不够美观&#xff0c;搜索引擎优化较差。History模式使用的浏览器的His…

C# 写入SQLServer数据库报错SqlException: 不能将值 NULL 插入列 ‘ID‘

private int id; [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]//id自增 public int ID { get > id; set > id value; } 将ID属性下的标识规范由否改成是

STM32-寄存器时钟配置指南

目录 启动 SystemInit SetSysClock 总结 启动 从startup_stm32f0xx.s内的开头的Description可以看到 ;* Description : STM32F051 devices vector table for EWARM toolchain. ;* This module performs: ;* - Set the in…

微信小程序支付流程

前端需要做的事情&#xff1a; 生成平台订单&#xff1a;前端调用接口&#xff0c;向后端传递购买的商品信息、收货人信息&#xff0c;&#xff08;后端生成平台订单&#xff0c;返回订单编号&#xff09;获取预付单信息&#xff1a;将订单编号发送给后端后&#xff0c;&#x…

Hadoop单机版环境搭建

一 . 案例信息 Hadoop 的安装部署的模式一共有三种&#xff1a; 本地模式&#xff0c;默认的模式&#xff0c;无需运行任何守护进程&#xff08; daemon &#xff09;&#xff0c;所有程序都在单个 JVM 上执行。由 于在本机模式下测试和调试 MapReduce 程序较为方便&#x…