Unity 之 模拟王者荣耀七日签到系统
发布日期:2021-06-29 19:10:22
浏览次数:2
分类:技术文章
本文共 9159 字,大约阅读时间需要 30 分钟。
Unity 之 模拟王者荣耀七日签到系统
一,效果图
不带补签版本:
二,制作思路
使用切换图片背景颜色的方式,进行状态转换【灰色:已签到;蓝色:可签到;白色:未签到】
主要逻辑:
- 每次签到时保存一个签到日期,用于判断今日是否签到;
- 根据是否已签到显示UI界面,提示信息等;
- 未签到时,点击按钮,进行签到(保存签到日期,发放奖励,维护UI显示等);
- 另外,还需要进行新的一周签到开始的逻辑重置;
上述逻辑,基本上模拟了王者荣耀的签到面板功能了,下面我们开始实现吧。
三,场景搭建
Demo场景搭建如上图:(没有资源有点丑~)- 制作一个签到按钮(一个Image,下面放了一个Image和一个Text)
- 复制六份(单独创建一个空物体,作为它们的父物体)
- 创建一个文本(随便放在哪里,显示提示信息用的)
四,代码实现
就是按上面说的实现的逻辑,代码中注释也写的很详细了,全部代码如下:
using System;using UnityEngine;using UnityEngine.UI;public class SingInDemo : MonoBehaviour{ // 签到按钮的父物体 public Transform WeekParent; // 提示文字 public Text HintText; // 上次签到时间 -- 和今天时间对比,确定是否今日已签到 private readonly string prefsLastCheckTime = "prefsLastCheckTime"; // 本周已签到几天 例:2 --> 表示周一,周二已签到 private readonly string prefsWeekAlreadyDay = "prefsWeekAlreadyDay"; // 今天周几 private int weekToday; // 本周签到了几天 private int alreadyDay; void Start() { //PlayerPrefs.DeleteAll(); weekToday = GetDateWeek(DateTime.Now.ToString()); AlreadyByWeek(); // 查看本周签到了几天了 alreadyDay = PlayerPrefs.GetInt(prefsWeekAlreadyDay); for (int i = 0; i < WeekParent.childCount; i++) { GameObject go = WeekParent.GetChild(i).gameObject; // 监听按钮点击 go.GetComponent
五,拓展补签版本
顺着上面的实现思路,很容易就是可以实现一个带补签的版本:
看下效果图:
其实就是把上面代码校验今天是否已签到
的地方修改为是否可补签
,然后添加一个补签逻辑就可以了。 场景搭建还是和上面一样,代码实现如下:
using System;using UnityEngine;using UnityEngine.UI;public class SingInDemo : MonoBehaviour{ // 签到按钮的父物体 public Transform WeekParent; // 提示文字 public Text HintText; // 上次签到时间 -- 和今天时间对比,确定是否今日已签到 private readonly string prefsLastCheckTime = "prefsLastCheckTime"; // 本周已签到几天 例:2 --> 表示周一,周二已签到 private readonly string prefsWeekAlreadyDay = "prefsWeekAlreadyDay"; // 今天周几 private int weekToday; // 本周签到了几天 private int alreadyDay; void Start() { //PlayerPrefs.DeleteAll(); weekToday = GetDateWeek(DateTime.Now.ToString()); AlreadyByWeek(); // 查看本周签到了几天了 alreadyDay = PlayerPrefs.GetInt(prefsWeekAlreadyDay); for (int i = 0; i < WeekParent.childCount; i++) { GameObject go = WeekParent.GetChild(i).gameObject; // 监听按钮点击 go.GetComponent
若还有不明白的地方,可以评论咨询,或者点击链接查看示例源码:
转载地址:https://czhenya.blog.csdn.net/article/details/115740022 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月10日 18时21分49秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
jupyter notebook查看python版本
2019-04-30
彻底删除macos上自己安装的python3.9
2019-04-30
gaussdb200 数据导出
2019-04-30
gaussdb200 数据导入
2019-04-30
superset 报表
2019-04-30
sqoop 原理与部署
2019-04-30
sqoop 实操
2019-04-30
kerberos 环境 MapReduce 跨平台提交
2019-04-30
欧洲杯上那让人惊叹的vivo蓝
2019-04-30
百度昆仑芯片独立背后,或向汽车芯片发起进军
2019-04-30
月活达10亿后,未来快手的“无限”可能
2019-04-30
关于回调注销问题的总结
2019-04-30
Android学习开发路线图
2019-04-30
开发Android主攻四大方向
2019-04-30
Android开发方向
2019-04-30
RAW格式
2019-04-30
Android6.0以上文件读写权限
2019-04-30
Android数据文件存储路径
2019-04-30
LINUX下的SD卡分区
2019-04-30
GDB的使用
2019-04-30