Lua游戏客户端框架View类

本文介绍了Lua游戏客户端的MVC设计模式,重点解析View类,包括__init初始化、Open/Show加载资源、InitPanel获取组件、__OnInitCompleted初始化完成、InitEventListener注册事件监听和__delete释放内存等关键步骤。View类主要用于UI交互,处理窗口和面板,并详细阐述了各步骤中涉及的资源管理、事件监听和内存释放策略。
摘要由CSDN通过智能技术生成
  1. MVC设计模式

脚本框架遵循MVC设计模式,每个模块的主体大致分为Model(BaseModel类)、View(BaseView类、BaseWindow类、BasePanel类)、Control层(BaseManager类)。

  1. Model类主要负责处理协议传递的数据,包括格式化、存储、增删查改等,还负责管理View的打开或关闭等操作;
  2. View类主要负责直接与玩家交互的UI层面的表现处理,BaseWindow与BasePanel均继承BaseView,根据需求将界面分为“窗口”或“面板”处理。玩家在UI层的操作传递到Model类进行数据处理,处理完毕后Model又将数据传递至View执行表现(刷新)。
  3. Controller(Manager)类主要负责协议的请求和接收数据。同时作为对外相关model的调用接口,即不直接调用xxxModel.Instance:xxx(),而是在Manager中封装了可能要用到的方法,调用xxxManager.Instance:xxx()

2.1 View类

2.1.1 __init初始化

Window类和Panel类都继承View类。

view会率先执行__init(model)方法,该执行顺序逻辑由基类BaseClass定义。在这里会进行一些属性的初始化,例如设置数据模型对象、命名、窗口id、缓存类型、打开窗口传入参数、窗口打开和隐藏触发的事件、初始化完成触发的事件、是否全屏显示、是否进入控制队列、是否在切换场景时关闭等。

self.model为__init(model)中传入的model,self.name为在unity中该游戏物体的名称。self.windowId的设置则需要先在WindowConfig.WinID中注册一个专属id。

随后在WindowConfig.WindowList中为对应的id赋予class和model。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值