Unity中的第一种签到方式的源码?
视频地址
源码:
/*
*┌────────────────────────────────┐
*│ 描 述:
*│ 类 名: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中的第一种签到方式的源码?相关推荐
- 一文看尽深度学习中的20种卷积(附源码整理和论文解读)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 引言 卷积,是卷积神经网络中最重要的组件之一.不同的卷积结构有着不一样的功能,但本质上都是用于提取特征 ...
- 2021-06-26一文看尽深度学习中的20种卷积(附源码整理和论文解读)
卷积,是卷积神经网络中最重要的组件之一.不同的卷积结构有着不一样的功能,但本质上都是用于提取特征.比如,在传统图像处理中,人们通过设定不同的算子来提取诸如边缘.水平.垂直等固定的特征.而在卷积神经网络 ...
- MySQL中MVCC的正确打开方式(源码佐证)
序 最近在学习MySQL中的MVCC,看了网上的各种版本,什么创建版本号.删除版本号,一开始看的时候,好像很对的样子,但实际上很多都是错误的.经过好几天的查阅对比,在几篇博客的帮助下,才算是觉得正确理 ...
- 用上帝视角俯瞰单点登录的前世与今生(内含两种实现方式的源码)
目录 1.什么是单点登录? 2.单点登录的前世与今生--前世篇(SSO) 2.1.单点登录的定义是: 2.2.总结成简单一句话说就是: 2.3.单点登录的优点: 2.4.拿去游乐园买票来讲一下单点登录 ...
- JavaScript中的几种继承方式及优缺点,你知道多少呢?
原文连接:JavaScript中的几种继承方式及优缺点,你知道多少呢? 继承也是前端里面的重要的一个知识点,在实际工作中或者面试中也会经常的遇到,那么通过这篇文章我们详细的了解一下继承的几种方式以及各 ...
- Unity中的几种渲染队列
在渲染阶段,引擎所做的工作是把所有场景中的对象按照一定的策略(顺序)进行渲染.最早的是画家算法,顾名思义,就是像画家画画一样,先画后面的物体,如果前面还有物体,那么就用前面的物体把物体覆盖掉,不过这种 ...
- Unity中的四种基本光源
Unity中的四种基本光源:点光源.方向光.聚光灯.面光灯 1.点光源 从光源位置向所有方向发射出强度相等的光线 在传输过程中不断的衰减.当传输距离达到预设的极限距离range时,光线强度衰减为0 适 ...
- 在Unity中制作4种不同的游戏
流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:8.6 GB 含课程素材 |时长:15h ...
- java用户输入解析_Java中的3种输入方式实现解析
Java中的3种输入方式实现解析 发布于 2020-8-8| 复制链接 摘记: 这篇文章主要介绍了Java中的3种输入方式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学 ...
最新文章
- Android-Spinner下拉列表Demo
- linux下的getopts
- Linux下fdisk命令操作磁盘详解--添加、删除、转换分区
- 布隆过滤器误判_布隆过滤器原理
- python数据库实现注册函数_python 函数 之 用户注册register()
- Linux内核调试方法总结【转】
- 【To Do!】程序员面试金典——18.8子串判断
- 拓端tecdat|R语言ARMA GARCH COPULA模型拟合股票收益率时间序列和模拟可视化
- 如何实现 java 接口中的部分方法
- linux TP 阿帕奇 数据库 php的安装
- Luogu P2595 [ZJOI2009]多米诺骨牌 容斥,枚举,插头dp,轮廓线dp
- python输出欢迎某某某_Python基础中所出现的异常报错总结,python基础总结
- java多线程编程synchronized关键字
- java飞机大战小游戏
- 关于地理数据坐标转换
- 转载-高仙机器人落地北京杭州深圳多个城市地铁
- 1920*1080 网页使用scale在其他分辨率或宽度下等比例缩放
- 2018 拼多多校招贪心算法题
- CSS+HTML+JS----开发简单个人网站
- 随机事件的关系及运算