正义集结对于新手引导流程总结--问题篇

正义集结对于新手引导流程总结

新手需求:

  • 满足各个页面之间跳转,返回。并且强制点击某个按钮,或者做某个操作。延迟操作,切换到某个页面,可能有动画弹出,切换期间有闭眼功能,都要对新手引导做相应的延时处理。
  • 新手引导表现类型:有手指提示点击,语音弹出,弹窗等。强制类型有重复引导,点过既过,强制但只会出现一次。
  • 断线重连引导断掉问题,杀进程引导断掉问题。
  • 上一步记录问题。
  • 避免新手引导卡死问题,以及措施。
  • 新手引导实时计算变化的,所以需要在Update中每帧去计算,判断。所以每帧的工作量不能太大。防止卡顿。
  • 引导多发生在页面切换后出现,并且,引导为强制的,避免用户在切换页面快速点击按钮,这是引导还未触发,造成的点穿问题。所以在新手引导期间切换页面要做禁输入操作。

具体步骤:
根据需求分析,新手引导多在主界面的某个活动的点击查看,任务领取,战斗选择关卡,英雄详情页面升级等等。所以才用按照页面名称的方式分组新手引导步骤,在加载配置文件时,建一个以页面为Key的映射表。
当到达某个页面,获取当前UI层最上层的UI名称。拿到对应的Guide(新手流程)表,遍历是否满足条件,满足就进行相应的引导。否则,不会触发引导。
Proto的字段:类似只需考虑意思即可,语法不重要。

message NewGuide
{
   required string UIName   = 1; //顶层的UI
   required Int32  GuideID  = 2; //GuideID
   required (这里可以写成枚举类型)  GuideType = 3; //GuideID
   required string ButtonID = 4; //手指寻找的ButtonID
   required bool IsAbandon= 5;//是否放弃,true则Guide失效不会被触发。反之。
   required float  FingerDelay = 5; //手指延迟出现的时间
  required float  RunKeyWord= 5; //用于区别复杂页面的字段(有的页面有子页面)
  required (类型是跳转的枚举用MGTT代替) LoginMainJump= 6;//断线重连之后的跳转
  required string MGTTParam1 = 6; //跳转参数1
  required string MGTTParam2 = 7; //跳转参数2
  required int32 ClickTimes = 8; //点击几次后强制跳过,防止卡死。
  repeated GuideConditions GuideCondition = 9;//详情列表
}

//详情列表是根据 GuideType 或者一些类型 ,读取相应的字段,执行不同的操作。

message GuideConditions
{   required string VoiceKey= 1; //语音的Key
    required int32 VoiceTime= 1; //语音的持续的时间(自动关闭)
    required (枚举) MGTT = 2;跳转//代替ButtonID的事件,执行跳转。
    required string MGTTParams1 = 3;跳转参数1
    required string  MGTTParams2 = 4;跳转参数2
    required bool IsNeedClick= 5;是否需要点击才触发跳转
    required (枚举类型)MVT = 6;判断执行Guide的条件枚举 
    required (枚举类型)IVT = 7;判断执行Guide的条件枚举
    required string IVTValue = 8;判断执行Guide的条件的 参数 和 MVT 对应
    required string ValueMin = 9;判断执行Guide的条件的最小参数
    required string ValueMax = 10;判断执行Guide的条件的最大参数
    // ValueMin  ValueMax  IVT对应的值落在[ValueMin ValueMax)区间中为true。
    //反之为false IVT MVT 
     
    required int32 VoiceOrder = 11;执行语音的顺序
}

IVT MVT 是在一个List 的结构中,需要每一条满足才会触发Guide。

上述是一条引导的配置字段。

新手引导暗坑—血泪史

  • 新手引导,每一条状态等相关信息都会写在数据库中,所以在Xml配置文件中,只能增加一条,而不可以删除。
  • 在该账号被创建时,就会在加载配置表的相关信息,写入服务器。所以修改被数据库写入的
    数据字段,需要重启服务器。例如 修改 IsAbandon的状态。
  • 引导多分为阶段来控制,不要每一步之间都要有联系,否则特别难控制。
  • 衔接步骤 强引导 (重复检测的引导)不能作为下一步引导开启的条件。
    可跳过步骤 不能作为下一步的引导开启的条件。可跳过步骤:为了各个页面之间跳转需要的步骤,但是如果执行到这一步的前一步杀进程,再次进入客户端,这一步引导就没必要在进行触发。(例如,结算奖励:玩家打完1-1,胜利应该到结算界面点击下一关按钮,去战斗准备页面,杀进程,下次进来就没有必要跳到结算界面进行引导,而是直接跳到去打1-2的引导,所以执行1-2的引导的开启条件就不可以依赖结算界面引导完成,否则引导就断掉了)
  • 寻找引导完成条件,可以依赖于在这一步触发的时候,某一步骤一定完成了,或者某一步骤
    一定没有完成。再加上相应的IVT或许MVT。就不会出问题。

这篇为相关问题的大致概括,余下几篇,会详细介绍触发原理,IVT MVT的实现运用机制,以及具体问题的具体解决方案。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值