将动态创建的服务器按键做成预制体
将动态创建的服务器按键做成预制体
服务器信息由远端服务器传给客户端
数据结构类 - 字典,一个服务器ID对应一个服务器数据
单个服务器信息
XML制作配置文件
通过登录面板管理器去管理数据
提供一个属性给外部获取
默认是空的,在构造函数中获取初始化
更新登入面板需要数据
图片切换为sprite图片,就可以看到原本的尺寸
事件响应播放声音脚本
Play Sound
绑定键盘
Key Blinding
tab键切换下一个
Key Navigation
语言本地化
1.在resources下创建一个txt文件,命名必须为localization
2.配置文件
3.给想要切换文字的label对象下挂在localize,关联key
4.给用于切换语言的下拉列表下添加脚本languageselection
NGUI字体的作用
1.降低drawcall
2.自定义美术字体
font maker
1.generated bitmap 生成图片方式,放到一个图集中可以降低drawcall,但如果字体要动态变化,不包括的文字不可以显示
2.imported bitmap 导入图集,用bmfont制作工具制作
文字变化较多的用unity动态字体,较少的用ngui字体
想要减少drawcall用ngui字体
美术字用ngui字体
如果游戏中drawcall数量较高会影响cpu的效率
UI层面上降低drawcall,打图集,即多个小drawcall变一次大drawcall
制作UI时降低drawcall的技巧
1.注意不同图集之间的层级关系
2.注意label的层级关系
On Press(bool ) 鼠标按下
OnHover(bool ) 鼠标经过
OnClick() 点击相关
OnDoubleClick() 双击相关
OnDragStart() 开始拖拽
OnDrag(Vector2 ) 拖拽中
OnDragEnd() 结束拖拽
OnDragOver(GameObject ) 拖拽经过的对象
OnDragOut(GameObject ) 拖拽离开的对象
利用面板来管理子控件
UIEventListener
适合代码添加
UIEventTrigger 适合Inspector面板关联脚本添加
通过ScrollView动态更新scrollbar
.UpdateScrollbars();
scroll view
panel脚本:控制可视范围
1.两个sprite,1个背景,1个滚动条
2.背景父对象添加脚本
3.添加碰撞器
4.关联对象
设置音乐音效大小等
1.3个sprite,1个根对象为背景,2个子对象,1个进度,1个滑动块
2.设置层级
3.为根背景添加slider脚本
4.添加碰撞器(父对象或者滑块)
5.关联3个对象
监听事件
.onChange.Add()
.onDragFinised +=
1.一个sprite做背景,1个label做显示内容
2.添加popuplist脚本
3.添加碰撞器
4.关联label做信息更新,选择label中的setcurrentselection函数
监听 .onChange.Add()
动态添加选项
.items.Add(内容);
用单例模式可以不用拖拽关联
1个sprite做背景,1个label显示文字
2.为sprite添加input脚本
3.添加碰撞器
2个sprite 1父1子
为父对象添加toggle脚本
添加碰撞器
group多选框分组
选框之间会互斥
state of none 允许单选框不选中
监听事件
.value toggle的返回值是bool值
代码监听
.onChange.Add()
制作button
1.一个sprite,需要文字再加一个label子对象 2.为sprite添加button脚本 3.添加碰撞器
使用大尺寸图片,没有必要打图集,直接用texture显示
ngui中所有文本显示都适用label来显示
UILabel