精华内容
下载资源
问答
  • TextMeshPro_Unity5.3.x(x64)

    2017-12-27 15:50:42
    TextMeshPro最新版本,更新至2017年12月27日15时,官网最新下载。
  • 3分钟解决Unity TextMeshPro 不支持中文的问题-字库资源 请参考我的博文搭配使用。 https://blog.csdn.net/msy7580237/article/details/106198055 CSDN梅思源
  • 自己导出的字体文件, 微软雅黑, 亲测可用, 使用20000个字符 4096*4096 SDFAA生成的字体文件足矣满足您的需求, 之前使用3500和7000个字符导出的文件有很多字符都没有, 然而这个可以满足您
  • TextMeshPro

    2018-08-06 16:08:00
    在游戏中用于字体显示,可设置不同的颜色及形状,在3D情况下使用3DText会模糊,用这个可完美解决
  • Unity2018.3.0 版本以上使用的TextMeshPro 中文字体包
  • Unity3d TextMeshPro教程

    万次阅读 2019-03-26 11:18:26
    TextMesh ProUnity默认文本组件的替代品。TextMesh Pro和默认组件一样拥有高性能,它使用了完全不同的Signed Distance Field(SDF)渲染技术,该技术最初由Valve在《军团要塞2》中使用。TextMesh Pro能够很轻松就...

    TextMesh Pro是Unity默认文本组件的替代品。TextMesh Pro和默认组件一样拥有高性能,它使用了完全不同的Signed Distance Field(SDF)渲染技术,该技术最初由Valve在《军团要塞2》中使用。TextMesh Pro能够很轻松就能让文本看起来更美观,还提供了更高级的控制功能,你可以通过检视窗口和脚本控制文本效果。

    当你在项目中使用TextMesh Pro,它拥有改进的视觉效果。由于使用SDF渲染技术,你可以轻松修改文本的效果,无需重新制作字体。每个TextMesh Pro组件都附带可以调整的材质,从而修改文本的风格。TextMesh Pro还具有更好的控制功能。TextMesh Pro组件包含所有原始文本组件拥有的变量以及更多其它变量。

    一、有两个TextMesh Pro组件可用:

    1.  添加一个新的TextMesh Pro文本对象,它与网格渲染器一起工作:“GameObject->3D Object->TextMeshPro Text”。

    2. 添加一个与新UI一起工作的TextMesh Pro组件,请转到:“GameObject->UI-”> TextMeshProText”

    二、TextMesh Pro组件分为两个部分:文本输入( Text Input Box)和字体设置( Font Settings)

    1.文本输入Text Input Box

    在此区域键入要呈现的文本。可以输入多行文本,在键盘上按<Enter>或输入特殊字符\n。

    <b>Bold</b>
    <i>Italics</i>
    <u>Underline</u>
    <s>Strikethrough</s>
    <sup>Superscript</sup>
    <sub>Subscript</sub>
    <size=48>Point size 48</size>
    <size=+18>Point size increased by 18</size>
    <size=-18>Point size decreased by 18</size>
    <pos=5.5>Characters positioned about 5.5 characters from left side.
    <color=yellow>Yellow text</color>
    <#00ff00>Green text</color>

    2.字体设置Font Settings

    Font Asset:这是TextMeshPro字体资源。
    Font Style:对文本应用全局样式,粗体、斜体等
    Vertex Color:将被指定为顶点的颜色,每个字符的颜色(除非有颜色,已指定标记
    Color Gradient:
    启用顶点颜色渐变
    Override Color Tags:启用覆盖颜色标签。
    Font Size:字体大小
    Auto Size:
    动态调整点大小。在最小值和最大值之间,以适应文本容器的大小。
    Character Spacing:控制单个字符之间的间距
    Spacing:
    允许调整字符、行和段落间距。
    Alignment:控制文本的对齐方式,选项有左、中、右和对齐。
    Enable Word Wrap:启用或禁用换行。
    UV Mapping Options:控制纹理(面和边框)如何映射到文本对象;
    Enable Kerning:如果在字体资产的字距表中定义了字距对,则启用或禁用字距。
    Extra Padding:非常小的字体可能需要额外的填充。这种额外的填充可以防止字符被剪。
    三、Material Editor & Shaders

    TextMeshPro包括几个自定义着色器以及一个自定义材质编辑器,旨在通过只公开那些预期的属性来保持事情的简单性

    修改。有两组着色器,其中包括位图着色器和一些符号距离字段着色器。TextMeshPro的着色器可以在“TextMeshPro/…部分着色器列表中材料组件。http://digitalnativestudios.com/textmeshpro/docs/shaders/是SDF着色器的列表和简要描述。更新的材质

    这里也有相关信息。

    Distance Field Mobile:

    这个轻量级着色器只包含最基本的特性,并提供了最佳的整体性能。

    Distance Field:

    这个更高级的着色器包含了大量的特性选择。它是默认分配给all的着色器带符号的距离字段字体资产。它仍然提供出色的性能。
    Distance Field Surface:

    这个着色器包含了与距离域着色器本质上相同的特性。它使用场景灯,代替使用模拟照明。这些文本对象也可以投射阴影,这个着色器使用每个像素的照明。


    Distance Field Surface Mobile:

    这是一个轻量级版本的表面着色器与有限的功能。它使用每个顶点的光照而不使用来自灯光的方向信息。它考虑到了光的距离。

    四、材质编辑器功能面板(Material Editor Feature Panels)

    定制使用的每个特性面板的概述材质编辑器。单击这些面板将隐藏或显示它们的特性,其中一些面板需要启用它们的功能。不同的面板将提供各种着色器。

    Face Panel:
     


    Color - 选择字符表面的颜色和透明度。(该颜色将与顶点颜色相结合。)
    Texture - 选择要应用于字符表面的纹理。(颜色会影响纹理的颜色,如何应用纹理中的映射选项控制到字符/文本对象

    编辑器面板。纹理选项不是在所有着色器上都可用。)
    Softness -控制字体的柔软度。
    Dilate -增加或减少字符的大小。

    Gloss -控制字符表面的亮度。

    Outline Panel:

    Color - 控制字符轮廓的颜色和透明度。
    Texture -选择要应用于字符表面的纹理。(颜色会影响纹理的颜色,纹理如何应用于字符/文本对象由编辑器面板中的映射选项控制,纹理选项不是在所有着色器上都可用。)
    Thickness - 控制轮廓线的厚度。
    Gloss - 控制使用表面着色器时字符表面的光泽。

    Underlay Panel:
    下划线可用于向文本对象添加阴影或边框。


    Color - 控制衬底的颜色和透明度。
    Offset (X, Y) - 控制衬底的位置。
    Dilate - 增加或减少衬底的尺寸。
    Softness - 控制衬底的柔软度。

    Bevel Panel

    内外斜面两种类型模拟三维斜面在二维物体上的视觉外观。


    Amount - 控制斜面的应用数量
    Offset -控制斜面相对于字符表面边缘的位置。
    Width - 控制斜面效果的宽度。
    Roundness -确定斜面脊线是尖锐的还是圆形的。
    Clamp -限制斜面的高度。

    Lighting Panel

    灯光设置控制斜面、凹凸和的外观的环境映射。


    Light Angle - 控制光线的角度。
    Specular Color - 高光的颜色。
    Specular Power - 控制高光的强度。
    Reflectivity Power - 控制反射光的数量。
    Diffuse Shadow - 增加或减少物体接收到的光量。
    Ambient Shadow - 控制光线和斜面边缘的显示效果。

    BumpMap Panel
    Texture - 应用于文本对象的法线映射。


    Face -控制要应用于字符表面的凹凸映射的数量。
    Outline - 凹凸贴图应用于字符轮廓的数量。
    EnvMap Panel


    Color - 颜色将使环境地图变亮、变暗或着色。默认颜色为黑色,不影响文本对象。
    Texture - 应用于文本对象的多维数据集映射
    Glow Panel


    Color - 辉光的颜色和透明度。
    Offset - 控制辉光的位置。值0.0位于字符表面的边缘。
    Inner - 控制辉光效果
    Outer - 控制辉光效果向外部延伸的距离。
    Power - 控制辉光效果向脸部外部延伸的距离。

    五、Font Asset Creator Overview

    创建方法: “Window->TextMeshPro Font AssetCreator”.

    Font Settings
     


    Font Source :是选择要创建资产的字体的地方。
    Point Size :手动选择字体的大小,也可以使用Auto调整大小模式,该模式将在给定的图集分辨率中找到尽可能大的字体大小。
    Font Padding 确定每个字符像素单位之间的空间大小。

    Atlas Resolution:图集分辨率决定字体图集的大小。对于大多数字体其中包括完整的ASCII字符集,大小通常为512 * 512。对于带符号的距离字段渲染模式。

    Character Set: 确定字体图集中包含哪些字符。

    Custom Range_允许您定义一个表示要包含哪些字符的范围。要定义包含ASCII集和拉丁补充字符的范围,用户需要输入
    32- 126,161 -255在自定义范围窗口。

    Custom Characters_ 允许用户通过输入自定义字符窗口来指定要包含的字符。
    Characters from File _用户能够提供一个纯文本文件,其中包含要包含在图集中的所有字符。

    Font Style: 选择是否将创建粗体、斜体或大纲,以及定义大纲的厚度或粗体。
    Font Render Mode :确定将如何呈现字符。

    Hinted Smooth_ 是带有提示的反锯齿呈现。
    Smooth_ 没有暗示也是一样的.
    Raster Hinted_ 在不使用提示反混叠的情况下呈现字符.
    Raster_ 没有反锯齿或提示。
     Distance Field 16_ 创建标准模式地图集。字体将被采样16倍,以产生一个更准确的签名距离场地图集。
     Distance Field 32_ 与上面相同,但是采样量是32倍以上。使用这种模式将导致一个更准确的SDF图集,虽然更准确可能只提供微妙的视觉改进。当试图将一个完整的ASCII集放入一个小的256 X 256图集或处理具有高频曲线变化的复杂形状的字体时,应该主要使用此选项。

    Get Kerning Pairs :确定是否将字体文件中可能存在的字距对添加到字体资产中。如果在字体文件中没有找到字距对,则始终可以在TextMeshPro字体中添加新的字距对资产编辑面板.

    Save TextMeshPro Font Asset :将弹出一个文件请求程序,允许您为新创建的资产选择文件位置和名称。默认情况下,字体名称将与字体名称相同。当使用带符号的距离字段呈现模式时,此名称将为添加了SDF的字体名称。我们建议您将字体资产保存在assets /Resources/Fonts/…或者创建这样的文件夹结构(如果不存在的话)。由于文本对象通常是通过脚本创建的,这导致任何场景对象都不会引用字体资产,这就保证了您的字体资产将包括在构建中并可用.

    六、Font Asset

    Face Info 包含特定于使用字体资产创建器呈现的字体的信息。这包括下列资料:

    Font Source - 字体的名称。
    Font Size - 字体在字体图集中呈现的点的大小。
    Line Height - This is the spacing between each lines of text.
    Baseline - 文本每行之间的间距。
    Ascender - 字体中任何字符的最高点。
    Descender - 字体中任何字符的最低点。
    Underline - 下划线的位置。
    Width & Height - 字体图集的宽度和高度

    Font Sub-Assets
    Font Atlas - 字体所有字符的纹理。这种纹理是特定于这种字体的。
    Font Material - 此字体的默认材质,其中包含对字体图集纹理的引用。
    Face Style :
    Normal & Bold weight - 字体的正常粗体权重。
    Italic Style - 定义斜体的斜度。

    Glyph Info 包含字体中每个字符的特定信息。


    ASC II & Char - TASC II码和字符
    X & Y - 字符在字体图集中的X和Y位置。
    W & H - 字体图集中字符的宽度和高度。
    Offsets - X偏移量是相对于(0,0)绘制字符的位置。Y偏移量表示字符的顶部相对于基线或(0,0)的位置。

    Kerning Table Info 包含字体的字距信息。Kerning数据可以在创建字体时导入,也可以使用此面板手动添加。


    Left Char - 字符对的左边部分
    Right Char - 字符对的右边部分
    Offset - 左右字符之间的偏移量

    展开全文
  • 适用于Unity2017版本的TextMesh Pro,低版本未测试,如有问题请反馈,可补充。包含三种Win10自带微软雅黑字体,msyh,msyhbd,msyhl,字体粗细区别:正常,粗体,细体。Unity2018请下载对应的2018版本
  • TextMeshPro表情系统

    2017-09-13 10:42:53
    TextMeshPro beta2.0可以在Unity5.1可以使用的聊天表情系统 TextMeshPro beta2.0可以在Unity5.1可以使用的聊天表情系统
  • TextMeshPro中文字体

    2018-05-29 13:56:04
    TextMeshPro显示中文的资源,插件请在Stroe上下载最新版
  • 适用于Unity3d 2017.1版的TextMesh Pro。 TextMesh Pro可以代替Unity现有文本组件如Text Mesh及UI Text的功能。TextMesh Pro使用Signed Distance Field(有向距离场,以下简称SDF)作为主要的文本渲染管线,能够以...
  • MeshEffectForTextMeshPro为Unity中的TextMeshPro提供视觉效果组件。 <<| | | | >> 什么是新的? 您是否要接收新版本的通知? 描述 你喜欢TextMeshPro吗? 我就喜欢:) 如您所知,TextMeshPro,最终的...
  • [Unity]聊天使用TextMeshPro

    千次阅读 2019-05-14 20:07:55
     为了快速解决这些问题,就用之前使用过的TextMeshPro,看了下替换情况,发现从LinkImageText替换为TextMeshPro,需要的时间不是很多,1个下午就替换完毕,之前聊天是一个Text,所以替换很快。但是为了性能考虑,...

            项目已经在大厂正式上线半个月了,忙碌了大半年的时间啊。时间实在是太赶了,上线的那几天,一堆问题,通宵达旦的修复问题,几乎没这么睡过,想想都心累呀!

    *************************************************分割线***********************************************************

            之前有说过,聊天界面是之前留下来的锅,卡顿问题已经解决,图片长度也可以处理。但在大厂的一个月测试的时候发现,聊天有很多问题,很严重:乱码问题,表情偏移等问题。发现这应该是占位符问题导致,而且是偶现,切换后台啥的又突然好了,应该是底层渲染的时候计算有问题导致。不清楚是不是LinkImageText这个脚本被修改太多导致的。

            为了快速解决这些问题,就用之前使用过的TextMeshPro,看了下替换情况,发现从LinkImageText替换为TextMeshPro,需要的时间不是很多,1个下午就替换完毕,之前聊天是一个Text,所以替换很快。但是为了性能考虑,再次优化,使用了另一个插件SuperScrollView。

            SuperScrollView需要根据UI的高度值和宽度值来计算的,但是TextMeshPro有个bug就是不会修改RectTransform的值,只好每次修改文本内容的时候,强制调用ForceMeshUpdate()来获取渲染的高度值和宽度值。顺带修改下SuperScrollView的获取高度值和宽度值的接口,将RectTransform.rect.height和RectTransform.rect.width修改成如下接口:

            private TMP_Text m_tmpText;
            private bool m_bIsFind = false;
            private bool GetBIsTMPText()
            {
                bool bIsTmpText = false;
                if (!m_bIsFind)
                {
                    m_tmpText = gameObject.GetComponent<TMP_Text>(); 
                     m_bIsFind = true;
                }
                bIsTmpText = m_tmpText != null;
    
                return bIsTmpText;
            }
    
            public float GetHeight()
            {
                float height = 0.0f;
                bool bIsTmpText = GetBIsTMPText();
                if (bIsTmpText)
                {
                    height = m_tmpText.renderedHeight;
                    if (CachedRectTransform.rect.height != m_tmpText.renderedHeight)
                        CachedRectTransform.sizeDelta = new Vector2(CachedRectTransform.sizeDelta.x, m_tmpText.renderedHeight);
                }       
                else
                    height = CachedRectTransform.rect.height;
    
                return height;
            }
    
            public float GetWidth()
            {
                float width = 0.0f;
                bool bIsTmpText = GetBIsTMPText();
                if (bIsTmpText)
                {
                    width = m_tmpText.renderedWidth;
                    if (CachedRectTransform.rect.width != m_tmpText.renderedWidth)
                        CachedRectTransform.sizeDelta = new Vector2(m_tmpText.renderedWidth, CachedRectTransform.sizeDelta.y);
                }
                   
                else
                    width = CachedRectTransform.rect.width;
    
                return width;
            }

            结合SuperScrollView和TextMeshPro插件修改聊天功能,解决了LinkImageText的遗留问题,而且在性能上有很大的提升。但是又发现个问题,为啥没有一个插件是直接拿来就能用的呀。

            问题其实不是很严重,但是策划一直很在意,那只好花点时间看源码,真TM长,4000多行代码,相当于现在我给接大厂SDK写的代码长度。

            问题如下:

            只要汉字后面接着一串数字或者阿拉丁字母等,都会导致莫名其妙的换行。修改倒是很简单,在TMPro_UGUI_Private.cs脚本中注释2行代码就OK:

            修改后就解决了,效果如下:

            其实比较坑的是Unity论坛上有人反映过这个问题,到现在都没修复这个Bug,也没有比较好的解决方案,还得自己来踩坑,真心累。

            使用TextMeshPro,还有个问题就是字体丢失的问题,项目使用的是7000个字的字库。玩家的想法不能确定,所以需要处理这些生僻字的问题,TextMeshPro源码中是用用空格来代替生僻字的,而且还会大量输出log日志。这个相对来说就比较简单了:

                        // 注释掉,避免更多的消耗
                        //if (glyph == null)
                        //{
                        //    // Search for the missing glyph in the TMP Settings Default Font Asset.
                        //    if (TMP_Settings.defaultFontAsset != null)
                        //        tempFontAsset = TMP_FontUtilities.SearchForGlyph(TMP_Settings.defaultFontAsset, c, out glyph);
                        //}
    
                        if (glyph == null)
                        {
                            // Use Space (32) Glyph from the currently assigned font asset.
                            c = chars[i] = 42;//32表示空格 42表示*
                            tempFontAsset = TMP_FontUtilities.SearchForGlyph(m_currentFontAsset, c, out glyph);
                            //if (!TMP_Settings.warningsDisabled) Debug.LogWarning("Character with ASCII value of " + srcGlyph + " was not found in the Font Asset Glyph Table. It was replaced by a space.", this);
                        }

            还有就是策划表里添加的生僻字,这些生僻字是一定要能显示的,为了解决策划秀他们语文功底的问题,专门写了工具来遍历策划表来查找新的生僻字,然后添加到字库中去。策划转的表是lua格式的,不需要操作Excel太多,只需要IO读取lua中的内容就OK。代码很简单,就不做任何解释:

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using UnityEditor;
    using UnityEngine;
    
    public class FindRareCharacterTool
    {
        private static List<string> m_existText = new List<string>() { "TextMesh Pro/CustomFont1.txt", "TextMesh Pro/CustomFont2.txt" };
        private static string m_tblRelativePath = "Resources/Lua/Table";
        private static string m_rareCharacterRelativePath = "TextMesh Pro/tempRareWord.txt";
        private static List<string> m_tblList;
        private static List<char> m_existCharList;
        private static List<char> m_rareWordCharList;
    
        [MenuItem("Tools/查找生僻字(策划表)")]
        public static void FindRareCharacterBtn()
        {
            FindRareCharacter();
        }
    
        public static void FindRareCharacter()
        {
            if (m_tblList == null)
                m_tblList = new List<string>();
            else
                m_tblList.Clear();
    
            string tblAbsoluteRelativePath = Application.dataPath + "/" + m_tblRelativePath;
            FindTbls(tblAbsoluteRelativePath);
    
            if (m_tblList == null || m_tblList.Count <= 0) return;
    
            GetExistChar();
    
            GenerateRareWordTxt();
        }
    
        // 获取策划配置的表的路径
        private static void FindTbls(string path)
        {
            if (!Directory.Exists(path))
                return;
    
            DirectoryInfo dirInfo = new DirectoryInfo(path);
            var files = dirInfo.GetFileSystemInfos();
            for (int i = 0; i < files.Length; ++i)
            {
                var fileName = files[i].Name;
                if (fileName.Contains(".") && !fileName.Contains(".meta"))//文件
                {
                    var fileFullName = files[i].FullName;
                    m_tblList.Add(fileFullName);
                }
                else//文件夹
                    FindTbls(files[i].FullName);
            }
        }
    
        // 获取已经添加的字库
        private static void GetExistChar()
        {
            if (m_existCharList == null)
                m_existCharList = new List<char>();
            else
                m_existCharList.Clear();
    
            for (int i = 0; i < m_existText.Count; ++i)
            {
                string tempExistText = Application.dataPath + "/" + m_existText[i];
                try
                {
                    StreamReader reader = new StreamReader(tempExistText);
                    var content = reader.ReadToEnd().Trim();
                    reader.Close();
    
                    var tempList = new List<char>(content.ToCharArray());
                    m_existCharList.AddRange(tempList);
                }
                catch (Exception e)
                {
                    Debug.Log("GetExistChar - Failed: " + e.Message);
                }
            }
           
        }
    
        // 获取未添加的字库
        private static void GenerateRareWordTxt()
        {
            string rareCharacterAbsolutePath = Application.dataPath + "/" + m_rareCharacterRelativePath;
            if (File.Exists(rareCharacterAbsolutePath))
                File.Delete(rareCharacterAbsolutePath);
    
            FileStream fs = File.Create(rareCharacterAbsolutePath);
            if (fs != null)
                fs.Close();
    
            if (m_rareWordCharList == null)
                m_rareWordCharList = new List<char>();
            else
                m_rareWordCharList.Clear();
    
            string title = "正在生成生僻字";
            int size = m_tblList.Count;
            bool bIsCancel = false;
            for (int i = 0; i < size; ++i)
            {
                string filePath = m_tblList[i];
                try
                {
                    StreamReader reader = new StreamReader(filePath);
                    var content = reader.ReadToEnd().Trim();
                    reader.Close();
    
                    content = content.Replace("\t", "");
                    content = content.Replace("\n", "");
                    content = content.Replace(" ", "");
    
                    for (int j = 0; j < m_existCharList.Count; ++j)
                        content = content.Replace(m_existCharList[j].ToString(), "");
    
                    for (int j = 0; j < m_rareWordCharList.Count; ++j)
                        content = content.Replace(m_rareWordCharList[j].ToString(), "");
    
                    // 去重复
                    var tempList = new List<char>(content.ToCharArray());
                    var newTempList = new List<char>();
                    for(int j = 0; j < tempList.Count; ++j)
                    {
                        if (!newTempList.Contains(tempList[j]))
                            newTempList.Add(tempList[j]);
                    }
    
                    m_rareWordCharList.AddRange(newTempList);
       
                    if(newTempList.Count > 0)
                        Debug.LogWarning(new string(newTempList.ToArray()) + "|" + "表: " + filePath);
                }
                catch(Exception e)
                {
                    Debug.LogError("GenerateRareWordTxt - Failed: fileName: " + filePath + "\nerror: " + e.Message);
                }
    
                string info = "对比" + filePath;
                float progress = i / (float)m_tblList.Count;
                if (EditorUtility.DisplayCancelableProgressBar(title, info, progress))
                {
                    bIsCancel = true;
                    break;
                } 
            }
    
            if(!bIsCancel)
            {
                string result = new string(m_rareWordCharList.ToArray());
                Debug.LogError("result: " + result);
                StreamWriter writer = new StreamWriter(rareCharacterAbsolutePath);
                writer.Write(result);
                writer.Flush();
                writer.Close();
            }
    
            EditorUtility.ClearProgressBar();
        }
    }

     

    展开全文
  • 仅包含OPPOSans-M字体; 增加了一些常用中文符号;
  • Unity 版本:2018.2.15 博客参考:http://blog.sina.com.cn/s/blog_1322690230102z1qh.html
  • FontAsset 用于Unity插件TextMeshPro 微软雅黑3500常用汉字,包含字母和常用符号
  • 文章目录一、前言二、TextMeshPro组件1、导入ttf字体2、打开Font Asset Creator3、创建txt字库文本4、设置Character Set5、Generate Font Atlas,保存字库asset6、创建TextMeshPro7、在3D空间中显示TextMeshPro8、...

    一、前言

    Unity中要显示文本,我们一般是用UGUIText组件。
    在这里插入图片描述
    在这里插入图片描述
    不过Text渲染的字体不是矢量的,所以靠近的时候会看到锯齿和模糊。
    在这里插入图片描述
    今天要介绍另个显示文本的组件:TextMeshPro,使用它渲染的字体是矢量的,靠近不会有锯齿和模糊。
    除此之外,还有丰富的表现效果,比如模糊、扩张、描边、发光等等。
    在这里插入图片描述

    二、TextMeshPro组件

    1、导入ttf字体

    ttf格式的字体导入Unity工程中,如下,我导入一个微软雅黑的ttf格式字库。
    在这里插入图片描述

    2、打开Font Asset Creator

    点击菜单Windows / TextMeshPro / Font Asset Creator
    在这里插入图片描述

    第一次打开会弹出如下提示框,点击Import TMP Essentials即可
    在这里插入图片描述

    打开后即可看到Font Asset Creator窗口。
    在这里插入图片描述

    3、创建txt字库文本

    创建一个txt文件,比如character.txt,里面输入要用到的字,比如:大家好,我是林新发
    在这里插入图片描述

    4、设置Character Set

    Font Asset Creator窗口中设置Character SetCharacters from File
    在这里插入图片描述
    然后把刚刚的character.txt赋值给Character File
    在这里插入图片描述

    5、Generate Font Atlas,保存字库asset

    点击Generate Font Atlas
    在这里插入图片描述
    保存字库asset资源,比如msyh SDF.asset
    在这里插入图片描述
    完成后即可看到msyh SDF.asset文件。
    在这里插入图片描述

    6、创建TextMeshPro

    Canvas加点上右键菜单:UI / Text - TextMeshPro,即可创建一个TextMeshPro对象。
    在这里插入图片描述
    可以看到它挂了一个TextMeshPro - Text (UI)组件,我们给它的Font Asset赋值刚刚创建的msyh SDF.asset,输入显示文本:大家好,我是林新发
    在这里插入图片描述
    即可显示出文本内容了。
    在这里插入图片描述
    我们在Scene场景中不管多近距离观察,字体显示都非常清晰。
    在这里插入图片描述

    7、在3D空间中显示TextMeshPro

    上面是在UI上显示TextMeshPro,我们也可以在3D空间中显示TextMeshPro
    在世界空间中创建一个空物体,点击菜单Create Empty
    在这里插入图片描述
    然后添加TextMeshPro -Text组件,注意不是TextMeshPro -Text (UI)组件。
    在这里插入图片描述
    然后赋值Font Asset,并输入显示文本。
    在这里插入图片描述
    即可在3D空间中显示TextMeshPro了。
    在这里插入图片描述
    将字体靠近镜头,字体依旧清晰:
    在这里插入图片描述

    8、描边效果

    选中TextMeshPro对象,调整材质的Outline颜色和Tickness(描边厚度)即可。
    在这里插入图片描述

    9、软化效果

    调节Softness可以实现字体的软化效果。
    在这里插入图片描述

    10、扩张效果

    调节Dilate可以实现字体的扩张效果。
    在这里插入图片描述

    11、投影效果

    调整Underlay可以实现字体的投影效果。
    在这里插入图片描述

    12、光照效果

    调整Lighting可以实现字体的光照效果。
    在这里插入图片描述

    13、外发光效果

    调整Glow可以实现字体的外发光效果。
    在这里插入图片描述

    展开全文
  • 报错TMP版本:(preview) 3.0.0 改为2.1.1版本 或其他非preview版本 即可。

    报错TMP版本:(preview) 3.0.0

    改为2.1.1版本 或其他非preview版本 即可。

    展开全文
  • TextMeshPro简介 Unity官方的插件,专门用来弥补UGUI中Text无法设置字符间距等不足,而且可以通过设置材质等方式制作出非常棒的字体效果。 TextMeshPro安装 TextMeshPro在2018版本以后就可以通过Window/...
  • 常用3500汉字字符(用于TextMeshPro生成字体贴图) 英文+日文+韩文+常用字符+简体中文+繁体中文 TextFilesForTextMeshPro-master
  • unity TextMeshPro 图文混排 切换图集

    千次阅读 2020-12-05 18:31:32
    unity TextMeshPro 图文混排 切换图集 本文仅做实现 暂无讲解 如有错误 还望指出 TextMeshPro组件 新建项目 创建TextMeshPro 尝试输入 汉字显示失败 需制作字体文件 打开Windows-》TextMeshPro-》...
  • u3d/unity3d 使用原生高清字体Text-TextMeshPro组件(非Text组件) 创建字体库使用的汉字表 亲测好使。
  • unity TextMeshPro的简单使用

    万次阅读 2019-03-18 19:43:06
    由于最近项目需要炫酷的字体,所以就上网找了很多方式,最终还是决定用unityTextMeshPro,下面图中上方是用TextMeshPro调的,下方是普通的Text文档。 创建方法如下: 挂载的组件如下: 组件和普通的Text差不多,...
  • 完整字体,带全中英文标点符号,全字母大小写自己用的,字体是下的免费商用字体 全部6900多
  • DissolveEffectForTMPro为Unity中的TextMeshPro提供了溶解效果组件。 <<| | | | >> 什么是新的? 您是否要接收新版本的通知? 描述 DissolveEffectForTMPro为Unity中的提供了溶解效果组件(来自 )。 它...
  • 1.DissolveEffectForTMPro为Unity中的TextMeshPro提供了溶解效果组件。 产品特点 溶解颜色,宽度和柔软度。 效果区域:RectTransform,适合,按字符拆分。 支持<font>和<sprite>标签。 您可以从...
  • 根据TextMeshPro中的示例设置成功,教程如下: 1、在TextMeshPro - InputField添加一个Scrollbar滚动条。Scrollbar位置:Component -> UI -> Scrollbar。 2、调整Scrollbar属性,这里滚动条的方向我设置为...
  • Unity textMeshpro 显示中文设置

    千次阅读 多人点赞 2020-06-17 19:26:52
    UI内的text很多时间满足不了需求,3D下的textMeshpro却默认不支持中文。 字体配置通过下面这个(.asset文件)完成,默认的那个不支持中文: 我们需要自己做一个: 下面需要两个文件,msyh通过C:\Windows\Fonts里面...
  • Unity】带有字符淡入效果的TextMeshPro打字机效果组件 在TextMeshPro中,可以通过 TMP_Text.maxVisibleCharacters 属性控制可见字符的个数,实现简单的打字机效果。如果要为打字机效果增加字符淡入效果,可以通过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 530
精华内容 212
关键字:

textmeshprounity