视频地址
源码:

/*
*┌────────────────────────────────┐
*│ 描   述:
*│ 类   名:SignInSystem.cs
*│ 创  建  人:
*└────────────────────────────────┘
*/using System;
using UnityEngine;
using UnityEngine.UI;namespace D_Bug
{public class SignInSystem : MonoBehaviour{#region Variablesprivate const string PreviousSignInTime = "PreviousSignInTime";private const string SignInCount = "SignInCount";private DateTime _toDay;private DateTime _lastDay;private TimeSpan _interval;         //时间间隔private int _signInCount;           //签到次数private int _maxSignInCount = 5;        //最大的可签到次数private bool _showNextSignInTime;   //显示下一次签到时间private bool _isMaxSignInCount ;  //达到最大签到数public Toggle[] _signInToggleTips; //是否已经签到了public Button _signInBtn;          //签到按钮public Text _signInBtnContent;     //显示时间#endregionprivate void OnEnable(){_toDay = DateTime.Now;_lastDay = DateTime.Parse(PlayerPrefs.GetString(PreviousSignInTime, DateTime.MinValue.ToString()));_signInCount = PlayerPrefs.GetInt(SignInCount, 0);if (_signInCount >= _maxSignInCount){PlayerPrefs.DeleteKey(SignInCount);_signInCount = 0;}UpdateUI();if (IsCanSignIn()){//可以签到_signInBtn.interactable = true;_signInBtnContent.text = "签到";}else{//不可以签到_showNextSignInTime = true;_signInBtn.interactable = false;}}private void Update(){if (Input.GetKeyDown(KeyCode.A)){PlayerPrefs.DeleteKey(PreviousSignInTime);}if (Input.GetKeyDown(KeyCode.B)){PlayerPrefs.DeleteKey(SignInCount);}if (_isMaxSignInCount){return;}if (_showNextSignInTime){_interval = _toDay.AddDays(1).Date - DateTime.Now;if(_interval >= TimeSpan.Zero){_signInBtnContent.text = $"{_interval.Hours}:{_interval.Minutes}:{_interval.Seconds}";}else{//可以签到_signInBtn.interactable = true;_signInBtnContent.text = "签到";_showNextSignInTime = false;}}}public void OnSignInBtnClick(){//给奖励_signInCount++;_lastDay = _toDay;PlayerPrefs.SetString(PreviousSignInTime, _lastDay.ToString()) ;PlayerPrefs.SetInt(SignInCount, _signInCount);//不可以签到_showNextSignInTime = true;_signInBtn.interactable = false;UpdateUI();}//是否可以签到private bool IsCanSignIn(){if (_signInCount >= _maxSignInCount){_signInBtn.interactable = false;_signInBtnContent.text = "达到最大签到数";_isMaxSignInCount = true;return false;}if (_lastDay.Year <= _toDay.Year && _lastDay.Month <= _toDay.Month && _lastDay.Day < _toDay.Day){return true;}return false;}private void UpdateUI(){for (int i = 0; i < _signInCount; i++){_signInToggleTips[i].isOn = true;}}//本地时间转时间戳private long LocalTimeToTimeStamp(DateTime localTime){//1970.1.1return ((DateTimeOffset)localTime).ToUnixTimeSeconds();}//时间戳转本地时间private DateTime TimeStampToLocalTime(long timeStamp){//1970  +  timeStamp秒数 To 本地时间return DateTime.UnixEpoch.AddSeconds(timeStamp).ToLocalTime();}}
}

Unity中的第一种签到方式的源码?相关推荐

  1. 一文看尽深度学习中的20种卷积(附源码整理和论文解读)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 引言 卷积,是卷积神经网络中最重要的组件之一.不同的卷积结构有着不一样的功能,但本质上都是用于提取特征 ...

  2. 2021-06-26一文看尽深度学习中的20种卷积(附源码整理和论文解读)

    卷积,是卷积神经网络中最重要的组件之一.不同的卷积结构有着不一样的功能,但本质上都是用于提取特征.比如,在传统图像处理中,人们通过设定不同的算子来提取诸如边缘.水平.垂直等固定的特征.而在卷积神经网络 ...

  3. MySQL中MVCC的正确打开方式(源码佐证)

    序 最近在学习MySQL中的MVCC,看了网上的各种版本,什么创建版本号.删除版本号,一开始看的时候,好像很对的样子,但实际上很多都是错误的.经过好几天的查阅对比,在几篇博客的帮助下,才算是觉得正确理 ...

  4. 用上帝视角俯瞰单点登录的前世与今生(内含两种实现方式的源码)

    目录 1.什么是单点登录? 2.单点登录的前世与今生--前世篇(SSO) 2.1.单点登录的定义是: 2.2.总结成简单一句话说就是: 2.3.单点登录的优点: 2.4.拿去游乐园买票来讲一下单点登录 ...

  5. JavaScript中的几种继承方式及优缺点,你知道多少呢?

    原文连接:JavaScript中的几种继承方式及优缺点,你知道多少呢? 继承也是前端里面的重要的一个知识点,在实际工作中或者面试中也会经常的遇到,那么通过这篇文章我们详细的了解一下继承的几种方式以及各 ...

  6. Unity中的几种渲染队列

    在渲染阶段,引擎所做的工作是把所有场景中的对象按照一定的策略(顺序)进行渲染.最早的是画家算法,顾名思义,就是像画家画画一样,先画后面的物体,如果前面还有物体,那么就用前面的物体把物体覆盖掉,不过这种 ...

  7. Unity中的四种基本光源

    Unity中的四种基本光源:点光源.方向光.聚光灯.面光灯 1.点光源 从光源位置向所有方向发射出强度相等的光线 在传输过程中不断的衰减.当传输距离达到预设的极限距离range时,光线强度衰减为0 适 ...

  8. 在Unity中制作4种不同的游戏

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:8.6 GB 含课程素材 |时长:15h ...

  9. java用户输入解析_Java中的3种输入方式实现解析

    Java中的3种输入方式实现解析 发布于 2020-8-8| 复制链接 摘记: 这篇文章主要介绍了Java中的3种输入方式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学 ...

最新文章

  1. Android-Spinner下拉列表Demo
  2. linux下的getopts
  3. Linux下fdisk命令操作磁盘详解--添加、删除、转换分区
  4. 布隆过滤器误判_布隆过滤器原理
  5. python数据库实现注册函数_python 函数 之 用户注册register()
  6. Linux内核调试方法总结【转】
  7. 【To Do!】程序员面试金典——18.8子串判断
  8. 拓端tecdat|R语言ARMA GARCH COPULA模型拟合股票收益率时间序列和模拟可视化
  9. 如何实现 java 接口中的部分方法
  10. linux TP 阿帕奇 数据库 php的安装
  11. Luogu P2595 [ZJOI2009]多米诺骨牌 容斥,枚举,插头dp,轮廓线dp
  12. python输出欢迎某某某_Python基础中所出现的异常报错总结,python基础总结
  13. java多线程编程synchronized关键字
  14. java飞机大战小游戏
  15. 关于地理数据坐标转换
  16. 转载-高仙机器人落地北京杭州深圳多个城市地铁
  17. 1920*1080 网页使用scale在其他分辨率或宽度下等比例缩放
  18. 2018 拼多多校招贪心算法题
  19. CSS+HTML+JS----开发简单个人网站
  20. 随机事件的关系及运算

热门文章

  1. 小米用户画像_小米10/10pro的目标用户画像是怎样的呢??
  2. axios 的简单增删查改 使用json-server启动的josn
  3. 快手极速版源码 - autojs 自阅
  4. 基于verilog状态机的八层电梯实现
  5. RK987A 机械键盘快捷键说明---仅供自己使用
  6. 去掉Excel 单元格里的字符后面的空格
  7. RK G87机械键盘使用指南
  8. 计算机系统基础实验 pa1
  9. 谷歌提出新框架Soft Diffusion:从通用扩散过程中正确调度、学习和采样
  10. Java导出超大Excel文件,防止内存溢出