TextInlineSprite
TextInlineSprite copied to clipboard
关于下划线的修改
感谢分享!!!项目中用到了下划线和图文混排,刚好找到了这个插件能满足项目! 研究后发现:下划线左右两边出现渐变的原因是:下划线的贴图是字体的“_”字符的uv坐标处的颜色。 改变获取算法如下: TextGenerator _UnderlineText = new TextGenerator(); _UnderlineText.Populate("▁", settings); IList<UIVertex> _TUT = _UnderlineText.verts; var uiCenterPos = Vector2.zero; var count = 0; for (int i = 0; i < _TUT.Count; i++) { var uiVertex = _TUT[i]; if (uiVertex.uv0.magnitude > 0) { uiCenterPos += uiVertex.uv0; count++; } } if (count > 0) { uiCenterPos /= count; for (int i = 0; i < _TUT.Count; i++) { var uiVertex = _TUT[i]; if (uiVertex.uv0.magnitude > 0) { uiVertex.color = Color.white; uiVertex.uv0 = uiCenterPos; _TUT[i] = uiVertex; } } } 原理是:找个中心是有颜色的字,然后找到这个字的中心UV坐标,然后把这些点的坐标全设置为中心坐标。
修改后源代码: InlineText.cs.txt
@fuliufuliu 你好,如果这个超链接前面有几个表情的话,下划线就消失了,好像绘制的位置不对了,不知道为什么