关于CenterGameManager - GameJam-0612-Reserve/Team GitHub Wiki

CenterGameManager.cs简介(后简称为CGM)

框架内的核心控制模块,功能上是用来控制所有CGM_******.cs(指包括UI控制、场景加载、存读档、读取表格数据等各种功能的代码模块)的主控制中心。

它会附着在一个不会销毁的GO上

在所有场景中的任何脚本所调用的CGM均为同一个

它是一个单例

using CGM; 任何场景中任何脚本都可以使用CenterGameManager.instance来找到CGM

CGM的目前功能

以下方法需在CenterGameManager.instance或已赋值的CenterGameManager变量后点出
以下段落中所有m_CGM指的是CenterGameManager.instance

1.场景控制器m_SceneLoader:

场景加载与切换:

.m_SceneLoader.LoadSceneByString(string SceneName, int state)

state 指的是游戏状态,目前:0=Start 1=Game 切换场景时输入会在切换完成的瞬间改变这个值。
State是方便未来的某些功能需要也方便管理,state可以通过m_CGM.State找到。
切换场景时可以使用的方法,注意使用时需把该场景拖入Build Setting界面中哦
该方法使用后即会跳转至默认的Loading界面,目标场景完全加载完后消失(如果目标场景太小加载太快,这里做了一个延时,Loading界面至少存在2秒,为了美观)

2.UI加载器m_UILoader

加载场景

.m_UILoader.LoadUI (GameObject UI, int Layer)

该方法用以动态加载UI,暂时没有做删除单个UI的方法 : P 因为暂时认为UI会有CloseBtn
UI为UI预制件,Layer指加载在哪一层,0=base 1=front 2=confirm
目前Layer有三层,数字越大越靠表层,注意表层会遮住里层

清空某一层的全部UI & 清空所有UI

.m_UILoader.ClearAllUI(int layer)

这里的layer增加了一种选项0=base 1=front 2=confirm 99=all

UI加载器的表哥CGM_SceneIniter(注意这个不是由m_CGM点出来的)

放在这里一起介绍一下这位,CGM_SceneIniter,人如其名,用来加载一些场景刚创建时就需要被动态加载的物件、参数等
目前可以用来加载UI,只需要把CGM_SceneIniter拖进场景里的任意位置,再在inspector中填写需要创建的UI,保存场景即可。该场景被加载时就会自动加载这些UI。
好奇的你可能要问了,欸我为什么不直接把那些UI放在场景里嘞?那是因为UI目前是作为CGM的gameObject子类存在的,与CGM一起不可摧毁,独一无二,这样方便CGM对所有当前存在的UI有一个统一的控制权。所以如果场景上放了UI而不是由UI加载器加载出来的UI就会不受CGM控制并会在场景移除时一并被带走。

3.存档与数据管理器m_SaveDataManager

读取ARG类参数

.m_SaveDataManager.参数名 即可读取

由于ARG参数都是静态参数,所以也可以不经过CGM直接通过SaveDataManager.参数名 进行读取

读取表格数据

所谓表格这里指的是《第三方插件Data sheet Lab》里所支持的数据文件(在3rd Party文件夹下有详细的文档)
可以先做好表格后联系@培根卢卡 进行注册后方可进行读取
读取方法将会是.m_SaveDataManager.表格名.(DataSheet插件所附带的强大方法们)

读写游戏存档

所谓游戏存档,目前是使用《第三方插件Save Game》(在3rd Party文件夹下有详细的文档)
如需要CGM提供读取存储某参数的功能,可以联系@培根卢卡 沟通后会有打包好的专用读写方法供使用
这类方法一般表现为.m_SaveDataManager.SaveXXX(T1 V1,T2 V2); 之类的 :|