TextInlineSprite icon indicating copy to clipboard operation
TextInlineSprite copied to clipboard

关于下划线的修改

Open fuliufuliu opened this issue 7 years ago • 2 comments

感谢分享!!!项目中用到了下划线和图文混排,刚好找到了这个插件能满足项目! 研究后发现:下划线左右两边出现渐变的原因是:下划线的贴图是字体的“_”字符的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坐标,然后把这些点的坐标全设置为中心坐标。

fuliufuliu avatar Jan 24 '18 11:01 fuliufuliu

修改后源代码: InlineText.cs.txt

fuliufuliu avatar Jan 24 '18 11:01 fuliufuliu

@fuliufuliu 你好,如果这个超链接前面有几个表情的话,下划线就消失了,好像绘制的位置不对了,不知道为什么

EricCai1991 avatar Aug 05 '20 07:08 EricCai1991