澳门大亨 熟悉文档

澳门大亨 熟悉文档


##开始项目的基本配置

####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

开始游戏到登入界面代码基本流程如图

16011001

Enjoy!