纳金网

标题: 【超链接】 利用 ngui 制作超链接 [打印本页]

作者: jamfing    时间: 2013-2-20 14:50
标题: 【超链接】 利用 ngui 制作超链接
利用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组成的一个超链接就算完成了。

效果:


作者: 王者再临    时间: 2013-2-20 15:22
很不错的介绍啊,谢谢了!!

作者: libufan    时间: 2013-2-20 15:36
谢谢楼主分享,很不错的教程哦,呵呵

作者: 艾西格亚    时间: 2013-2-20 16:34
请多分享NGUI的相关教程,谢谢!

作者: Steve    时间: 2014-2-6 17:31
谢谢楼主分享
作者: 川流不息    时间: 2014-2-7 23:09
好东西呀,谢谢楼主了!
作者: 一笑而过2号    时间: 2014-2-8 00:04
NGUI的教程就是好
作者: 张鱼怪    时间: 2014-2-8 02:31
mark!mark!
作者: titanko    时间: 2014-3-4 16:25
很不错的介绍啊,谢谢了!!
作者: Chubbaz    时间: 2014-3-4 16:30
Thanks for sharing.
作者: heise    时间: 2014-3-19 18:48

很不错的介绍啊,谢谢了!!
作者: Mr_X    时间: 2014-3-23 09:38
这个不是有插件嘛
作者: gao5411    时间: 2014-4-15 13:47
想法不错
作者: mflyskym    时间: 2015-9-11 09:13
呵呵,很不错,辛苦了




欢迎光临 纳金网 (http://old.narkii.com/club/) Powered by Discuz! X2.5