【NGUI】Rpg对话框

来源:互联网 发布:淘宝开两家店 编辑:程序博客网 时间:2024/06/06 19:33

-记录一下做RPG中,和NPC对话,弹出对话框的做法。

刚开始使用NGUI,还有很多不懂。


-------------------------------------------------------------------------------------------------



首先是中文显示。

把text的label的NGUI设置成Unity,然后把字体选择成这个Arial。那就可以显示中文了。

-----

显示文字

overflow调节一堆文字显示的效果。当文字的数量大过长度时,是分段还是压缩。我选择的clamp content是自动换行。

然后【widget】的privot就是控制文字的位置。虽然可以调上面的position,但是这个比较方便。

我的游戏运行后,不知道为什么文字会变成左上角。所以我在代码里设置了一下。

backGround.transform.GetChild(0).gameObject.GetComponent<UIWidget>().pivot = UIWidget.Pivot.Center;//用这行就可以设置了。

backGround是text。需要获得子类来设置。

最后是设置text。

GetComponent<UILabel>().text

获得这个text,然后修改就可以了。


-------

button的响应

本来是想使用鼠标点击的。但是因为还不是很懂NGUI的位置转换。虽然能显示出来,屏幕位置对了。但是,世界位置不对,所以鼠标点击的时候点不到那个button。

然后就换成了响应事件。

鼠标点击代码:

if (Input.GetMouseButtonDown(0))//左键按下
                {
                    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                    RaycastHit hit;
                    if (Physics.Raycast(ray, out hit, 100))//发射射线
                    {
                        if (hit.collider.gameObject == this.gameObject)//如果点击的对象是当前的对象
                        {
                            //修改成想要的处理的效果
                        }
                    }
                }

响应事件:


首先添加这个函数到button


然后在代码中加这一句。button就是你要检测的那个gameobject。

然后在函数中做相应的事情。然后这就可以了。当点击那个button的时候,就会执行ButtonClick函数。

0 0