聊天对话框是网络游戏中经常会用到的
GUI
之一,它可以通过用户的键盘输入来获取输入信息并发送到其他的游戏客户端中。当然,聊天对话框的用途还有很多。在
NGUI
中,也为我们创建聊天对话框提供了方便,如图所示:
![点击查看原图](http://game.ceeger.com/forum/attachment/Mon_1210/16_7487_39fcc316b04f8c4.png)
首先先床架一个窗口层次结构,这里不再赘述,请看前面的教程。在里面的Label中,我使用了中文的字体为3698Font包3698font.unitypackage,如图所示
![点击查看原图](http://game.ceeger.com/forum/attachment/thumb/Mon_1210/16_7487_b933706596f5f74.png)
为该窗口创建一个Input元件,该元件用于接收用户的输入,其参数如下
![点击查看原图](http://game.ceeger.com/forum/attachment/thumb/Mon_1210/16_7487_927544df860a904.png)
创建一个TextList,用于显示用户输入信息之后显示信息。新建一个空的游戏对象,并命名为TextList,并成为Window的子物体,同时reset一下;一个TextList组件(Component-> NGUI->UI->Text List),并设置该组件中的Style属性设置成Chat,如图所示
![点击查看原图](http://game.ceeger.com/forum/attachment/Mon_1210/16_7487_a985e7243929563.png)
为该TextList对象添加一个Label和一个SlicedSprite,注意SlicedSprite和Label之间的深度关系,Label的深度值应该比SlicedSprite大,如Label为2,那么SlicedSprite为2,如图所示
![点击查看原图](http://game.ceeger.com/forum/attachment/thumb/Mon_1210/16_7487_418aa323b24d7c5.png)
选择Input对象,为其添加一个Chat Input组件(Component->NGUI->Interal->chat Input),并把TextList对象赋值给TextList属性,如图所示
![点击查看原图](http://game.ceeger.com/forum/attachment/Mon_1210/16_7487_e0e1277a6ee3001.png)
点击播放,ok!你在输入框中输入中文和英文都可以正常显示!如图所示
![点击查看原图](http://game.ceeger.com/forum/attachment/Mon_1210/16_7487_931096bfecd7626.png)
如果你输入多行,你会发现,其TextList中的文字不会自动往上,现在选择TextList中的Label,然后把其他的Pivot设置成BottomLeft,这样便可以使得随着文字的显示的增加而不断往上升了。如图所示
![点击查看原图](http://game.ceeger.com/forum/attachment/Mon_1210/16_7487_bfbe41e57666391.png)
选择Input对象,并把Fill with Dummy Data选项打开,点击播放,这个时候可以通过这个选项来控制是否显示测试文字,如图所示
![点击查看原图](http://game.ceeger.com/forum/attachment/thumb/Mon_1210/16_7487_cade6479dc45d70.png)
可以看出文字都跑外面去了,选择TextList,在UITextList组件中,设置其MaxWidth和MaxHeight,这个可以设置其显示文本的最大高度和最大宽度。如图所示
![点击查看原图](http://game.ceeger.com/forum/attachment/thumb/Mon_1210/16_7487_e3c6b79723c441e.png)