Unity的TextMeshPro使用概览

这篇具有很好参考价值的文章主要介绍了Unity的TextMeshPro使用概览。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、生成动态字体

1.字体文件:比如windows系统的fonts文件夹中

2.导入unity,create——Text Mesh Pro——Font Asset

Unity的TextMeshPro使用概览

3.字体补充:建一个txt文件,收录常用汉字(中文标点符号也要自己处理),导入unity,然后选中生成的SDF字体,更新字体图集

Unity的TextMeshPro使用概览

4.选择合适的分辨率,太小会导致字体放大时模糊,选择从文件导入字符,Generate,然后Save

Unity的TextMeshPro使用概览

5.测试生成的字体,嘿哈!

Unity的TextMeshPro使用概览

Unity的TextMeshPro使用概览

二、静态表情

1.TMP支持图文混排,使用sprite标签(如<sprite=1>)默认表情图集在

Unity的TextMeshPro使用概览

Unity的TextMeshPro使用概览

Unity的TextMeshPro使用概览

2.制作字体的表情图集

a.资源图集,切分

b.生成TMP的Sprite Asset

Unity的TextMeshPro使用概览

c.修改位置信息

Unity的TextMeshPro使用概览

d.修改TMP setting的默认表情图集

Unity的TextMeshPro使用概览

也可以在sprite标签中指定图集名称:

<sprite>标签将Sprite Asset中的图片插入到文本中,Sprite Asset必须位于TMP中的指定文件夹TextMeshPro -> Resources -> Sprite Assets中。
<sprite=9>//默认图集+索引

<sprite name="happy"> //默认图集+图名

<sprite="My Sprites" index=9> //指定图集+索引

<sprite="My Sprites" name="happy">//指定图集+图名

三、动态表情

TMP可以再sprite中指定多个属性,anim可以指定播放图集的开始索引,结束索引,播放速率,例如<sprite=1 anim=1,5,10>

5.测试生成的字体,嘿哈!

<sprite=0><sprite=1><sprite=2><sprite=3>

<sprite="emoji" index=0><sprite="emoji" index=1>

<sprite="emoji" anim=0,3,10>

<sprite index=1 anim=1,5,10>

<sprite="EmojiOne" index=1 anim=1,5,5>

Unity的TextMeshPro使用概览

四、超链接

<link=”ID”>超链接</link>,需要监听点击事件,做对应处理:

public void OnPointerClick(PointerEventData eventData)
{
    TMP_Text tmp = GetComponent<TMP_Text>();
    int linkIndex =TMP_TextUtilities.FindIntersectingLink(tmp,eventData.position,null);
    if (linkIndex != -1)
    {
        TMP_LinkInfo linkInfo = tmp.textInfo.linkInfo[linkIndex];
        Debug.Log(linkInfo.GetLinkID());
        Application.OpenURL(linkInfo.GetLinkID());
    }
}

五、3D文字

Unity的TextMeshPro使用概览

Unity的TextMeshPro使用概览

六、性能优化

1.由于TMP导出的字体图集格式是未压缩的,所以对于4096 * 4096的纯Alpha通道来说就是16MB的内存占用,所以考虑对图集进行压缩

2.使用图文混编图片和文字会分别占用一个dc(因为二者使用的材质信息不同)。因此TMP中混编的图片同样要注意不要和字体发生重叠,否则就会打断文本自身的合并处理增加dc。如果有重叠的时候就将带图片的放在上层(貌似同一个组件中图片的层级会默认比文字高),这样文字和文字之间dc仍然是合并的

3.TMP组件支持的外发光,光照,阴影这些特性都是在shader中实现的,如果全开的话势必会增加渲染的开销。建议根据项目情况去选择不同的shader来生成字体,比如插件自己提供的mobile里的shader(mobile里的shader不仅仅是删除了部分功能如光照外发光,本身对外轮廓,阴影的算法也做了简化)文章来源地址https://www.toymoban.com/news/detail-407467.html

到了这里,关于Unity的TextMeshPro使用概览的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity使用TextMeshPro多字体和材质热更

    最近Unity项目中使用到TextMeshPro做聊天,需要支持部分字体带描边,部分字体不带描边。想到的决解方案是:TextMeshPro支持多字体展示(具体可以查看组件的官方案例Link Example),就做了两个字体一个是带描边的一个是不带描边的。 但是有个问题是多出来的一个字体需要放在

    2024年02月16日
    浏览(60)
  • Unity TMP (TextMeshPro) 创建字体材质

    完整名称:Text Mesh Pro ,unity新一代主流字体插件 1.1 组件变化 内置的Text组件以及与内置Text组件绑定的Button、DropDown、InputField均被替换为使用TextMeshPro的版本 内置的Text组件以及与内置Text组件绑定的Button、DropDown、InputField则被移动到Legacy菜单 1.2 变化说明 旧的组件只是移动到

    2024年02月10日
    浏览(38)
  • Unity TextMeshPro解决中文乱码以及修改默认字体

    (自学unity问题产生及解决记录贴) 环境及版本:windows,unity 2021.3.20f1c1 一、创建TextMeshPro输入中文产生乱码 问题:TextMeshPro中文显示乱码 解决方法: 使用系统自带字体 在C:WindowsFonts路径下找一个字体,以微软雅黑为例,复制到unity目录下(unity项目中,在project右键Show in E

    2023年04月12日
    浏览(56)
  • 【UGUI】TextMeshPro如何配置和使用中文字体

            在Unity中,TextMeshPro与常规 Text 组件相比提供了更高级的文本呈现功能,TextMesh Pro 可以处理各种语言,包括中文。我们可以轻松地在 Unity 项目中使用中文,而不必担心字体和布局问题。 目录 一、配置和使用中文字体步骤 二、警告及解决方案 三、Font Asset Creator属性介

    2024年02月07日
    浏览(67)
  • Unity中TextMeshPro的使用

     在Unity中有自带的Text组件,这个组件已经能够满足我们日常开发中绝大多数的开发字体显示需求了,我们为什么还要使用这个TextMeshPro组件呢?这是因为Text使用的是基于位图的渲染技术而TextMeshPro基于的则是SDF算法即基于网格的文本渲染技术,并且TextMeshPro相比于Text拥有更

    2024年01月17日
    浏览(45)
  • Unity中使用TextMeshPro打出Emoji表情

    最近遇到一个需求,在聊天框中支持用户的Emoji输入,查了半天资料没有一个能说清楚的,于是自己研究琢磨了下。 最终效果 最终效果可以在APP输入框中使用系统的输入法输入emoji表情并显示,如下 1.1 准备好emoji素材 找到emoji图片,注意需要是 unicode.png 格式命名的。github上

    2024年01月18日
    浏览(56)
  • Unity TextMeshPro使用技巧-添加描边渐变色

    需要修改描边颜色,先以为要去改源码,后面发现TextmeshPro(后面叫Tmp)本来就支持, 选择这个shader,然后添加描边的渐变色图,这样描边也可以显示多种颜色了,下面的Thickness调整的是描边清晰度

    2024年02月16日
    浏览(54)
  • Unity 动态修改自定义字体(Text)颜色

    参考:Unity 给Text文字添加不同的颜色_贪小心的博客-CSDN博客_unity文字颜色 原文: 在Unity中有些文字需动态更改颜色,通常通过color=redxxx/color而原本Color类所提供的颜色数量有限,就需要添加自己调好的Hexadecimal。 而动态修改颜色用Hexadecimal的话写在Text内容本身的时候就会出现

    2024年02月16日
    浏览(42)
  • Unity3D使用C#脚本修改TextMeshPro的内容(以显示系统时间为例)

    在网上找了很多都没有涉及到这个TextMeshPro内容修改,踩了很多坑,记录一下 特别是using TMPro; public TextMeshProUGUI Text; GetComponent();

    2024年02月11日
    浏览(45)
  • 【Unity编辑器扩展】字库裁剪工具, 优化字体文件大小,批量修改文本组件字体

    原理: 1. 扫描项目中用到的字符集; 2. 把字体文件裁剪掉没用到的字符,仅保留项目中用到的字符; 3. 生成裁剪后的字体文件; 工具功能设计: 1. 支持通过拖拽字体文件或文件夹批量选择需要裁剪的字体文件。 2. 扫描工程中使用到的字符集:主要是获取prefab中Text、TextM

    2024年02月15日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包