TextMesh是Unity中用于在3D对象上渲染文本的组件。它允许你设置文本的字体、大小、颜色等属性,并可以将文本附加到3D对象上。 2. 研究Unity中实现TextMesh描边的常见方法 在Unity中,为TextMesh添加描边效果通常有两种主要方法: 使用Shader:通过编写或修改Shader,为文本添加描边效果。这种方法比较灵活,可以实现各种复杂的描...
效果:绘制物体的外轮廓(不是描所有的边,只是描最外围的边),比如LOL中选中塔的效果: 这部分知识在ShaderLab开发实战详解有详细的说明,不过我做了修改,用另一种更简单的方法解决了在不写深度的情况下,描边被遮挡的问题。 描边原理:要画2遍,第一遍画稍大一号的模型,输出的颜色为描边颜色,大出来的尺寸就是描边的...
为了快速解决这些问题,就用之前使用过的TextMeshPro,看了下替换情况,发现从LinkImageText替换为TextMeshPro,需要的时间不是很多,1个下午就替换完毕,之前聊天是一个Text,所以替换很快。但是为了性能考虑,再次优化,使用了另一个插件SuperScrollView。 SuperScrollView需要根据UI的高度值和宽度值来计算的,但是TextMeshPro有...
public TextMeshProUGUI textMeshPro; void Start() { textMeshPro.alignment = TextAlignmentOptions.Center; } } 设置TextMeshPro 描边效果 可以通过设置 TextMeshProUGUI 组件的 outline 属性来设置描边效果。 using TMPro; using UnityEngine; public class Example : MonoBehaviour { public TextMeshProUGUI text...
设置TextMeshPro 描边效果 可以通过设置 TextMeshProUGUI 组件的 outline 属性来设置描边效果。 using TMPro; using UnityEngine; public class Example : MonoBehaviour { public TextMeshProUGUI textMeshPro; void Start() { textMeshPro.outlineWidth = 0.1f; textMeshPro.outlineColor = 403 Forbidden; } } ...
TextMeshPro能做很多漂亮的效果。但是它的做法类似于图字,要提供所有会出现的字符。对于字符很少的英语环境,这没有问题,但对于中文环境,把所有字符弄进去是不现实的。还有最关键的是,它是作用于TextMesh组件,而不是UGUI的Text。 于是乎,使用Shader变成了最优解。
TMP是一个Unity文本组件,TextMeshPro - Text(UI)显示UI文本,TextMeshPro - Text显示3D文本。 TMP为文本样式和纹理提供了很强大的灵活性。 使用简单、表现丰富。 二、TMP与Text的差异 TMP文本样式比Text文本样式更加丰富和灵活。 TMP对应的Shader支持描边、阴影和颜色渐变等美术效果,而且不会额外增加网格的顶点数量。
创建OutlineText继承Text,重写OnPopulateMesh,在内部进行描边 usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine; usingUnityEngine.UI; publicclassOutLineText:Text { publicboolm_OutLine=true; publicColor m_OutLineColor=Color.black; ...
由于策划们经常需要给文字添加描边的效果,以防止文字看不清或者用来强调一些文字。之前一直用的都是Unity自带的Outline组件实现文字描边,在效果和性能上都很差。而如果使用TextMeshPro的话,又需要对每种语言都做资源,会多出很多工作量,并增加包体。所以需要另寻方法实现一个文字描边的组件。
一、Unity自带的描边 首先来看Unity自带的描边,把参数调大就会发现,只是在四个方向多显示了几份。透明物体肯定不得行,多叠了几层之后,透明度就不对了。 二、2D描边检测算法 参考资料:https://www.jianshu.com/p/c68a730e9a8b 算法:对于不透明的像素,判断上下左右,如果含有不透明像素,则显示描边。