- 最后登录
- 2015-5-29
- 注册时间
- 2012-11-7
- 阅读权限
- 10
- 积分
- 85
- 纳金币
- 64
- 精华
- 0
|
利用ngui 制作超链接
刚开始接触Ngui不知道如何制作超链接,后来利用两个label,一个label存放要显示的文本字体,另一个label根据文本字体长度来显示多个'_'字体来组成一个超链接,最后把这两个Label存放在一个空对象中(UISuperLineButton),并给其加上Box Collider进行接收鼠标事件。如:
要解决问题:
1.如何计算要显示文本的长度(不同数字字母长度会不一样),如:“青蛇打白蛇打来打”
方法:
void GetTextWidth(int nowScaleX,int nowScaleY,UILabel label,ref int TextWidth, ref int TextHeight)
{
int labelTextLength = 0;
string str = label.text;
int labelCount = str.Length;
float wordWidth = ((float)nowScaleX/label.font.bmFont.charSize);
for( int ii = 0 ; ii < labelCount; ii++ )
{
char c = str[ii];
BMGlyph glyph = label.font.bmFont.GetGlyph(c);
if( glyph != null)
{
labelTextLength += (int)(glyph.advance*wordWidth);
}
if( ii == 0 )
{
TextHeight = glyph.height;
}
}
TextWidth = labelTextLength;
}
2.再算出一个‘_’长度lineWidth,利用TextWidth/lineWidth计算出需要多少个'_',再把这些下划线给第二个Label,根据调整显示的位置,两个label组成的一个超链接就算完成了。
效果:
|
|