您的位置:首页 > 其它

提前获取文本的宽度,便于合理显示文本显示框

2015-08-13 15:36 218 查看
提前获取文本的宽度,便于合理显示文本显示框。

Unity提供的两个获取文件宽高的方法 preferredWidth 和preferredHeight 必须是文字在Text组件中渲染出来以后才能取到。因为我们游戏的聊天框中是可以输入表情,所以图文混排工具需要支持自动换行的功能。那么这里问题就来了我需要提前获取Text的宽度,这样我才能知道文字什么时候进行换行。

总体来说和NGUI的思路完全一样。提前把文字渲到材质上,这样就可以取出来宽度了。

public Font font;

void testFont()

{

int fontsize=35;

string text = "赵光辉";

font.RequestCharactersInTexture(text,fontsize,FontStyle.Normal);

CharacterInfo characterInfo;

float width=0f;

for(int i=0; i<text.Length;i++){

font.GetCharacterInfo(text[i],out characterInfo,fontsize);

//width+=characterInfo.width; unity5.x提示此方法将来要废弃

width+=characterInfo.advance;

}

Debug.Log("width : " + width);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: