澳门大亨 熟悉文档
##开始项目的基本配置
####GameSetting.lua
- 服务器地址基本设置
- 设备号设置
HallConnector.lua
- self.sessionID 测试的用户id,不同用户要设置不一样
####开始的AssertBundle打包
- 使用Package_MacaoTycoon_Trunc 打资源包流程
1.
2.
页面管理中几个重要的类
绑定在panel页上的类
BaseLua.cs(动态绑定到页面上)
- 每个panel页面都会绑定一个BaseLua
- BaseLua用mono周期管理当前panel对应lua脚本的周期(例:Surface_3D_Login页面对应Surface_3D_Login.lua脚本)
WidgetReference.cs(固定在页面上)
- 需要在lua脚本中处理逻辑对应的图片,按钮,Object等依赖,需绑定在这个脚本上,以便lua脚本中可以调用到
####CoroutineComponent.cs(固定在页面上)
- 执行特殊方法类
- 当前panel对应lua 脚本需执行延迟操作和按照一定帧率操作方法时调用
不绑定页面的其他管理类
BasePage.cs
- 用于一个panel页面展示和隐藏
页面堆(例:LoginPageStack.lua)
- 管理当前堆模块依赖的资源和页面
- 并不是所有的页面和资源都有pagestack管理
- 基本按照模块来区分页面堆(例如登入模块 会有一个LoginPageStack.lua来控制当前界面的逻辑)
GamePageStackManager.cs(页面堆管理)
- 在GameStart Scene开始时 GamePageStackManager初始化在界面上
- 对各个页面堆(例:LoginPageStack,CommonPageStack)通过GamePageContainer.cs进行管理
- 调用一个pagestake会生成对应的pagestack Gameobject 在GamePageStackManager子类中(例如:在开始生成登入界面会生成一个LoginPageStack 的GameObject在GamePageStackManager的子类中)
GamePageContainer.cs
- 对要显示的stackpage中的页面初始化,并且保存
- 对存储的页面进行获取,移除,退出操作
####MJPage.cs
- 在GamePageStackManager子类中生成的pagestack GameObject 都会绑定一个MJPage.cs
- 调用对应stackpage脚本中的方法(例:OnShow()),调用GamePageContainer管理页面退出
页面重要的lua类
PageRouteManager.lua
- pagestack的管理,对应c#端的GamePageStackManager.cs类
- 将调用的pagestack用List.lua 以节点的方式存储,可以在页面转跳中(回退,前进页面)更好的管理
LuaBasePanel.lua
- 是每个页面对应lua脚本的基础
- 实现一些页面初始化,添加按钮事件,设置一些页面属性
PanelManager.lua
- 找到需要引用的对应页面的lua脚本,在c#端 Baselua.cs和MJPage.cs中调用
没有被页面堆管理的代码,需在PanelManager脚本写下页面脚本对应位置,下面例子在pop文件下
1
redirectPanelTbl["*.Dialog_Message"] = "pop"
有页面堆管理的代码,需放在对应名字的目录下(例:Surface_3D_Login 在LoginPageStack管理,放在打包名字对应的login目录下)
GamePageStackManager.lua
- 所有stackpage lua端的基本管理
- 游戏开始时候{“SoundPageStack”, “CommonPageStack”, “LoginPageStack”}三个stack初始化
页面转跳的基本流程
1 | st=>start: 点击转跳 op=>operation: BasePage.cs中toggleshow方法 op1=>operation: 传入资源名,页面名称,是否显示,依赖资源 op2=>operation: 加载依赖图片资源 op3=>operation: 加载依赖资源 op4=>operation: ResourceManager从AssetBundle加载界面 op5=>operation: 创建界面 cond=>condition: 存储是否有当前页面 Yes or No? cond1=>condition: 是否显示 Yes or No? cond2=>condition: 有依赖资源 Yes or No? e1=>end: 显示界面 e2=>end: 隐藏界面 st->op->op1->cond2 op3->cond cond2(yes)->op3 cond2(no)->cond cond(yes)->cond1 cond(no)->op4 cond1(yes)->e1 cond1(no)->e2 |
开始游戏到登入界面代码基本流程如图
Enjoy!