[游戏开发] 新玩家引导设计

新手引导是个费力不讨好的活,该功能与其他功能产生大量耦合,因此,新手引导设计的核心就是解耦!解耦!解耦!

该项目中几个出现的名词先给大家解释一下
GuideMgr常驻内存(引导框架管理类,负责管理引导组、引导项、引导的开启、所有事件的管理)

GuideItem(引导项数据,由于可能存在多个引导同时存在的可能,每个引导项数据独立存在)

--引导项打开
function GuideItem:Init()
	self:FindUITarget()         --流程1判断是否有引导物体
	self:StopTime()
	self:ShowMask()             --流程3再显示遮罩
	self:MaskClip()             --流程2设置遮罩信息
	self:IsDialog()             --流程5是否显示对话
	self:FocusEvent()
	self:IsBtnEffect()          --流程6是否显示圆形特效
	self:IsArrow()              --流程7是否显示箭头
	self:IsHandMoveEffect()     --流程*是否显示手指移动
	self:IshandCircleEffect()   --流程8是否显示方形特效
	self:IsHand()               --流程9是否显示手势
	self:IsTips()               --流程10是否显示提示框
	self:IsRocker()             --流程11是否显示摇杆提示
	self:IsRhombus()            --流程12,显示菱形
	self:IsFightPosEffect()
	self:IsPlayAudio()          --流程17,播放音效
	self:ShowCountDown()		--流程18,是否自动完成
	self:ShowSkip()				--流程19,是否可以跳过
end

UIMgr(UI框架管理类,负责UI的生命周期功能,例如加载、显示、隐藏等)

UI_Guide(引导UI预设)

先说一下引导常见的完成方式

  1. 引导点击UI按钮完成引导(强制引导或弱引导)
  2. 强制引导战斗系统上阵某个角色到指定站位
  3. 强制引导战点击攻击某个敌方角色

引导架构设计

 UI类型的引导主要是按钮点击,这类引导方式的发起点是UIMgr显示目标UI后向GuideMgr抛事件,当检测是目标UI后GuideMgr启动引导项。UIMgr一定要设计一套按钮管理机制,当任意UI加载后,要把它身上的所有Button的组件管理起来,这样做的好处是可以实现按钮过滤。举个例子:当主城UI启动后开启竞技场引导,玩家手速快点了其他按钮跳出了其他UI,请注意,此时是强制引导状态,但你的引导目标已被新UI覆盖点不到导致卡死。如果有了按钮过滤系统,你压根就无法点击除目标按钮以外的按钮,这个锁定UI的名字叫FocusButton合适。

有个特殊的UI引导就是

 引导UI按钮点击

问题1:手机平台的引导界面是异步加载的,引导界面会比引导目标UI晚出现

问题2:切换场景、切换战斗时引导界面还没出现,但引导物体已被点击的问题

问题3:玩家手速快在UI_Guide显示之前点击了其他UI按钮进入了功能,导致引导组错乱卡死。

解决方案:

GuideMgr实现引导数据和UI剥离,当UI_Guide加载后去显示当前的GuideItem的数据即可,解决UI_Guide异步加载慢的问题。问题2引导还没显示但先点击UI完成的情况,引导项直接删除,开启下一项引导数据即可,也就是说,引导UI加载后显示啥,永远以当前的GuideItem数据为准。问题3就靠UIMgr的FocusButton功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Little丶Seven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值