- UI相关
接着上篇文章继续进入菜单流程
进入流程后打开菜单窗口
成功打开菜单窗口后触发订阅的事件
赋值m_MenuForm 为 菜单逻辑
创建一个UI窗口会在这个窗口上添加两个脚本
一个是这个窗口的自定义逻辑脚本,一个是UIform 的生命周期脚本
再初始化UIform生命周期脚本时会获取这个UI上的逻辑脚本
在每个周期阶段UIForm上执行的逻辑其实是需要调用逻辑脚本上的逻辑如上图
我们在使用UI的时候只需要编写逻辑脚本就行了
接着制作下UIform,可以参考starforce里的ui,不过我感觉starforce里的太麻烦了
如在菜单ui上有各种按钮,作者没有使用UGUI里的Button这个类而是用UI事件接口自己写了个common button 虽然很直观 但我没有使用。
如下我的UI预制中按钮是UGUI的默认按钮
我是在菜单窗口打开时给按钮加上事件
记得要在UFG 预制体UI组件上创建默认组,因为在UIFrom数据表中 所有的uigroup 都是default的
到这里UI就可以正常加载的了,如果读者还遇到其他问题可自行debug。
- 现在还有一个问题按钮上的文字会出现nokey的字样,那是因为UI框架里会对ui上的text里的字符进行本地化操作,什么是本地化? 就是根据你的配置进行多国语言的切换。
在ui逻辑的基类中再初始化ui时会对text把字符的字符当做key去字典中找对应的value。
在starforce中字典中的数据是由xml文件中读取的在localiztion 文件夹下
作者这里做了四种语言简,繁,英,韩。
直接复制这个文件夹到我们工程中
要切换语言就在在UGF的预制体中选择对应的语言,然后游戏初始化就读对应的xml文件。
来到预加载流程中取消之前注释掉的载入字典方法。
同时加上对应的的载入成功和失败的订阅事件。
starforce中是用xml载入字典的也可以用其他的文件格式需要自己实现,作者已经实现了用xml文件的方法了,默认的辅助器是二进制读取的。不能直观看到数据。
直接把作者的xml本地化辅助器脚本拷过来。
在UGF预制体本地化组件上应用
因为载入的时候使用xml文件格式载入的所以辅助器也用xml的
这样就可正确加载文字了