Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.

关于下划线的修改 #7

Open
fuliufuliu opened this issue Jan 24, 2018 · 2 comments
Open

关于下划线的修改 #7

fuliufuliu opened this issue Jan 24, 2018 · 2 comments

Comments

@fuliufuliu
Copy link

感谢分享!!!项目中用到了下划线和图文混排,刚好找到了这个插件能满足项目!
研究后发现:下划线左右两边出现渐变的原因是:下划线的贴图是字体的“_”字符的uv坐标处的颜色。
改变获取算法如下:
TextGenerator _UnderlineText = new TextGenerator();
_UnderlineText.Populate("▁", settings);
IList _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
Copy link
Author

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

@EricCai1991
Copy link

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants