前言
最近正在筹备一个3D次世代的手游项目,项目起步阶段涉及很多框架和通用的模块封装设计,在此期间发现在网络上收集相关资源比较麻烦,也就诱发了单开一个博客记录项目筹备阶段所收集到的一些文档的想法。
今天说一下游戏开发过程中经常用到的红点推送。
一、红点是什么?
红点推送,经常用在各类APP中,无论游戏还是社交软件,均可看到它的存在;
红点系统设计初衷大致为了达成一下两种目的:
- 作为一种通知推送形式,告知用户有未查阅的信息;
- 为重要的业务入口导流,增加点击量,进而增大业务曝光率
在游戏项目的应用一般就包括:
- 引导玩家领取奖励
- 引导玩家体验全新开启的系统
- 引导玩家查看新的活动
- 提醒玩家玩法次数已更新
- 提醒玩家有新的提升可操作
- …
基于以上,我们可以看到红点系统基本可以说是贯穿了游戏大部分系统,那么我们也就产生了希望能提前设计一个通用的红点模块,约定各种规则后方便后续开发过程中进行模块化调用;
二、红点分类
红点的触发条件我们先定义为均通过各个模块自行决定何时何故触发;
通用模块负责红点的表现逻辑以及红点的上报叠加逻辑处理;
在这里我们暂时将小红点归类为三种通用红点类型:
1.常规小红点
常规小红点:即为单纯的小红点,无任何附加信息显示;
2.数字红点
数字红点:在红点基础上增加了数量信息显示(数字最大三位);
3.文字信息类红点
文字信息类红点:通过文字标签的形式代表红点显示;
红点类型在模块封装时约定定义参数,其他系统进行调用时根据调用参数显示对应的红点;
红点的显示位置在各个系统中自行预留锚点(一般根据图标类型进行分类给予默认锚点规则即可);
可通过表格的方式,配置新增红点类型以及调用的红点资源;
类型ID | 红点备注 | 父类型 | 优先权重 | 红点资源 |
---|---|---|---|---|
1 | 小红点 | 1 | 1 | redpoint.png |
2 | 数字红点 | 2 | 2 | Nu_redpoint.png |
3 | "新"标记 | 3 | 6 | Xin_redpoint.png |
4 | "限时"标记 | 3 | 4 | Xian_redpoint.png |
5 | "推荐"标记 | 3 | 5 | Jian_redpoint.png |
6 | "hot"标记 | 3 | 3 | Hot_redpoint.png |
类型ID:对应各个系统调用时的传参类型;
红点备注:主要给维护者看的备注;
父类型:对应上面定义的三种红点大类型,控制整个子类型的基础逻辑;
优先权重:主要作用在父级按钮上出现两个文本红点时的显示优先级控制;
红点资源:主要用于各种红点资源维护;
三、红点通用规则和叠加
通用规则:
- 红点由触发点逐级向上传递(直到达到顶层1级入口);
- 至上而下界面展开时,隐藏展开的父级按钮红点(比如当一个界面的切页按钮上有红点,展开切页后,对应切页的红点隐藏);
叠加规则:
- 不同类型的红点叠加时根据优先权重配置显示优先级(取优先级高的显示);
- 相同类型红点叠加根据其大类型调用规则,规则如下:
父类型 | 叠加规则 |
---|---|
小红点 | 叠加显示仍为单一小红点 |
数字红点 | 数字数值累加显示 |
文本红点 | 叠加显示仍为单一对应文本小红点 |
困了,红点清楚和生命周期就不写了,临时起意想要写写画画,也就没啥排版格式了,大家将就看~