最近项目里有个需求,在设计剧情对话的时候需要逐个字的播放一个label里的剧情对话,当然这不是关键,关键是策划需求剧情内的某些字段比如名字等需要区别于剧情对话的字体的大小。当然有人会说直接拼label就完事了,当然这是一种解决方案,这里分享一下通过修改uilabel来实现是更改局部字体大小的目的。
实际上label的绘制是在NGUIText.cs这个C#文件内的Print()接口实现的,其中有这样一段的代码:
if (!bold)
{
if (!italic)
{
verts.Add(new Vector3(v0x, v0y));
verts.Add(new Vector3(v0x, v1y));
verts.Add(new Vector3(v1x, v1y));
verts.Add(new Vector3(v1x, v0y));
}
else // Italic
{
float slant = fontSize * 0.1f * ((v1y - v0y) / fontSize);