本新手引导模块优势
- 高度配置化,95%的工作在excel完成
- 支持任意复杂度的单步引导提示UI(可选)
- 模块独立,几乎不破坏业务逻辑代码
- 事件驱动,便于使用,配置完成以后,只需编写少量代码
功能介绍
游戏开发中,新手引导部分经常需要插入到业务代码的方方面面,极难管理不说,还很容易出错。本新手模块解决了此问题。
本模块依赖固定格式的excel表格配置,以事件驱动,需要在业务逻辑中添加引导辅助类,用于声明或处理配置中使用的的事件。demo表格在线预览 表格格式如下:
-------我是分割线-------
表格中每一行代表一个引导步骤,解析引导步骤列表后,可以自动按步骤执行引导,原业务代码只需要插入极少量的事件代码。
- excel转成json使用到了一个开源工具,已经集成在demo中:excel2json
整体自动播放的大致流程图如下:
引导配置字段说明
excel表格的内容会解析成以下数据结构的数组,引导将按数组顺序连贯执行或等待相应事件触发后接续执行。其中单步引导数据结构如下(与Excel表格一致):
使用教程
- 先将表格转成json
- 然后需要解析引导配置,这个直接使用demo的config_guide就行,基本不用改:
- 其次需要一个统一的引导辅助类,demo中是data_guide.ts,作用是声明事件,并处理一些引导系统自动emit的事件。事件与excel的事件对应。
如,本demo中声明的事件如下:
其中,GuideEvents是由业务逻辑中触发,比如:
表示向引导系统发送onShow_test_1事件,由引导系统自动进行处理。这个也基本上是业务逻辑中唯一需要增加的代码!
- 对事件的集中处理,也应放在data_guide辅助类中(声明事件以及对事件的处理,即可完美接续引导顺序,详细请查看demo):
定制引导提示
- 如果需要定制指定步骤的引导提示UI,只需配置tipPrefab和tipParams即可,其中,tipPrefab是prefab所在的bundle和路径,tipParams是传给该UI的参数;tipPrefab根节点必须挂载继承自hyz.guide_tip_base的组件,并实现initGuideTip(params:any)方法,这个就是体现高自由度的地方,tipParams会作为参数经由initGuideTip传给tipPrefab,所以可以实现任意复杂度的提示UI。
- 开始进行引导步骤只需要调用checkPlayGuide即可
在线demo地址
在线demo地址2(github page)
商城地址
欢迎大佬们指正~