您的位置:首页 > 移动开发 > Unity3D

基于改造后的NGUI与Lua实现的unity热更新框架(一)

2016-11-19 09:48 1361 查看
经过了在公司几天的学习,对于项目框架开发流程有了了解:

1、先把UI界面搭建好,然后在相应的地方写好事件,做成预制体,使用Build UI build一下,生成对于的配置文件

2、在viewdefine文件中定义一个ui ,如:[TEST_PROJECT] = "ui_project",然后在定义放置ui的容器,如:[viewdefine.TEST_PROJECT] = container_define.PANEL_VIEW_CON

这里要注意的一点是,放置在哪一个ui容器需要根据开发需要来选择

3、使用luawork生成模板,并且填入ui名字

4、在net_init中require相关文件代码,如:work[viewdefine.TEST_PROJECT] = require "business.work_myproject"

5、在--UI自身的方法--中写相应的逻辑

另外:

1、使用 AddEventListener 注册相应的UI自身方法,并使用 RemoveOneEventListener 移除相关的监听,如:

 AddEventListener(btn_event.TO_SHOW_PAGE_INFO, test_item_function)

 RemoveOneEventListener(btn_event.TO_SHOW_PAGE_INFO, test_item_function)

2、并刷新/创建/关闭相关的ui界面,如:

function work.work_show_ui(data)
refresh_ui.add_ui_event(view_name, on_create, on_close)
show_data = data
refresh_ui.create_ui(view_name)

end

3、需要require一些相关的事件的时候要请问一下思远或者健权,如:

 local tb_table_item = require "data.tb_table_item"

 local ui_event_item = require ("cfg.ui.cfg_myBackItem").refresh_event

最后总结一下对这个框架的认识:

游戏逻辑通过改造过后的NGUI上面定义的事件进行驱动的,而且特别重要的是事件必须是要唯一的,这样UI的逻辑就只负责自身的逻辑就可以了,

而不用管其他部分的逻辑是怎么样的。实现的方法主要是根据viewdefine和net_init文件定义的文件来进行的,而且每一个界面都有一个自身单独
的配置文件,因为这个是在build的时候自行生成的,这效率很高,所以对于程序的拓展非常的有利

这只是框架的UI设计部分的冰山一小角,还有很多部分是没有接触到的,以后有机会会持续更新



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: