{"text_format":"3","workbook":"xlsx","n_sheets":4,"sheets":["游戏结构","UI架构","网络通讯架构","本地化注意事项"],"not_rendered":{"images":14},"read":"whole","date_system":"1900"}

{"sheet":"游戏结构","index":0,"n_rows":20,"n_cols":21,"rows_kept":20}
[]
[null,"资源结构",{"$nulls":11},"代码结构"]
[]
[]
[]
[]
[{"$nulls":19},"1、通用方法及常量"]
[{"$nulls":6},"1、logo场景是游戏的主场景"]
[{"$nulls":19},"2、静态数据表"]
[{"$nulls":6},"2、游戏所有的资源"]
[{"$nulls":19},"3、前端自定义配置数据"]
[{"$nulls":6},"3、lua逻辑"]
[{"$nulls":19},"4、proto通讯协议"]
[{"$nulls":6},"4、c#层逻辑"]
[{"$nulls":19},"5、游戏逻辑代码"]
[]
[{"$nulls":19},"6、通用ui组件"]
[]
[{"$nulls":19},"7、Framework文件夹"]
[{"$nulls":20},"游戏架构，主要为UI、对象池，声音及静态数据表的管理"]

{"sheet":"UI架构","index":1,"n_rows":111,"n_cols":14,"rows_kept":111}
[]
[]
[{"$nulls":11},"1、游戏开始时游戏会初始化各种与UI相关的管理器（这里的Manager可以理解为架构上的管理器）"]
[{"$nulls":12},"1> Managers 注册各个UI界面对应的数据管理器，并在游戏开始时进行初始化。"]
[]
[{"$nulls":12},"2> NetManager  与后端通讯的接口，玩家登录时会从后端获取相应的数据，保存到对应的数据管理器中。"]
[]
[{"$nulls":12},"3> UIManager  UI界面管理器，打开关闭界面，处理UI界面的关系，保存界面状态和堆栈数据，对UI自动划分层级。"]
[]
[{"$nulls":12},"3> SubUIManager  一些通用UI物体的管理器，游戏中一些反复使用的物体，如物品节点，头像节点等，都由此管理器进行管理"]
[]
[{"$nulls":11},"2、UI数据管理器 （这里的Manager可以理解为UI数据层的管理器，相当于MVC架构中 Controller和Model 的结合体）"]
[{"$nulls":12},"与UI界面一一对应，负责对相应UI界面的相关数据进行保存，转发，及逻辑处理等操作"]
[]
[{"$nulls":11},"3、界面（相当于MVC架构中的 View）"]
[{"$nulls":12},"游戏中大部分的View都继承自BasePanel，此父类中定义了界面的生命周期函数："]
[{"$nulls":13},"InitComponent  生命周期中的第一个函数，用于初始化界面相关节点"]
[{"$nulls":13},"BindEvent    绑定ui点击、滑动等事件"]
[{"$nulls":13},"AddListener   用于监听数据管理器发送的事件"]
[{"$nulls":13},"OnOpen(args)   界面打开时调用，可以接受参数"]
[{"$nulls":13},"OnShow      在OnOpen之后调用，生命周期中可能被多次调用"]
[{"$nulls":13},"OnSortingOrderChange(order)   界面层级改变时调用，参数为新的层级"]
[{"$nulls":13},"RemoveListener    关闭界面时调用，移除对数据事件的监听"]
[{"$nulls":13},"OnClose   界面关闭回调"]
[{"$nulls":13},"OnDestroy    界面销毁回调"]
[]
[{"$nulls":11},"4、如何创建一个界面"]
[{"$nulls":12},"1> 创建prefrab  在ManagedResource/UI下创建文件夹，并创建prefrab文件"]
{"$rows_empty":21}
[{"$nulls":12},"2> 创建lua文件  在ManagedResource/~Lua/Modules下创建文件夹，并创建对应的lua文件（继承BasePanel,并重写相应的周期函数）"]
{"$rows_empty":18}
[{"$nulls":12},"3>注册     首先需要在UIConfig.xlsx中注册刚刚创建的UI信息"]
{"$rows_empty":13}
[{"$nulls":13},"然后在  UIData.lua  中加入新加的界面ID"]
{"$rows_empty":14}
[{"$nulls":12},"4>  刷新表资源和资源路径"]
{"$rows_empty":11}
[{"$nulls":12},"5>  在程序中试用以下方法打开界面    (...表示可变长参数)"]
[{"$nulls":13},"UIManager.OpenPanel(UIName.ArenaMainPanel，...)"]

{"sheet":"网络通讯架构","index":2,"n_rows":0,"n_cols":0,"rows_kept":0}

{"sheet":"本地化注意事项","index":3,"n_rows":39,"n_cols":4,"rows_kept":39}
[]
[null,"1、代码"]
[null,null,"代码中除注释与log之外不再出现中文"]
[null,null,"中文字符一律通过   ...data_execl\\excelTool\\Export\\LanguageLua.csv  进行管理"]
[]
[null,null,"1、在LanguageLua.csv中加入要在游戏中显示的中文字符（保证ID不能重复）"]
{"$rows_empty":8}
[null,null,"2、使用工具将数据导入lua"]
{"$rows_empty":9}
[null,null,"3、在代码中引用"]
{"$rows_empty":8}
[null,"2、预制体"]
[null,null,"在搭建界面时，所有的Text组件都改为LanguageText组件，创建方法如图"]
[]
[null,null,"注意：","button，inputField等自带Text的组件需要在创建时手动修改"]
[]
[{"$nulls":3},"使用方法和Text完全相同，无须特殊处理"]