Unity实现10天签到系统

本文实例为大家分享了Unity实现10天签到系统的具体代码,供大家参考,具体内容如下

实现功能:

正常在游戏中签到,并把剩下的倒计时给显示出来。时间是变化的,没有用gif是显示,将就着看…

废话不多说,上代码:

public class SignPanelUI : MonoBehaviour
{
    public const string SignNumPrefs = "SignNum";//领取次数的字符串
    public const string SignDataPrefs = "lastDay";//上次领取的时间字符串
    int signNum;//签到次数  默认是0

    DateTime today;//今日日期
    DateTime lastDay;//上次领取日期
    TimeSpan Interval;//间隔时间

    Button reviceButton;//领取按钮
    Text reviceText;//领取和时间Text

    bool isShowTime;//是否显示时间

    private void Awake()
    {
        reviceButton = transform.Find("Bg/bottomButton").GetComponent<Button>();
        reviceButton.onClick.AddListener(OnSignClick);
        reviceText = reviceButton.transform.GetChild(0).GetComponent<Text>();
    }

    private void OnEnable()
    {
        today = DateTime.Now;
        signNum = PlayerPrefs.GetInt(SignNumPrefs, 0);
        lastDay = DateTime.Parse(PlayerPrefs.GetString(SignDataPrefs, DateTime.MinValue.ToString()));
        if (IsOneDay())//今天日期是否大于领取日期  可以领取
        {
            Debug.Log("可以领取!");
            if (signNum >= 10)//重新计算签到
            {
                PlayerPrefs.DeleteKey(SignNumPrefs);
                //TODO:把奖励物品重置
            }
            //TODO:把按钮text变成领取
            reviceText.fontSize = 25;
            reviceText.text = "领取";
            reviceButton.interactable = true;

        }
        else //签到日期未到
        {
            isShowTime = true;
            reviceButton.interactable = false;
            reviceText.fontSize = 25;
        }
    }

    private void Update()
    {
        //TimeSpan time=DateTime.Now.AddDays(1).Date - DateTime.Now; //用后一天的时间减掉当前的时间,得到剩下的时分秒
        //Debug.Log(string.Format("{0:D2}:{1:D2}:{2:D2}s",time.Hours,time.Minutes,time.Seconds));
        if (isShowTime)
        {
            Interval= lastDay.AddDays(1).Date - DateTime.Now;
            reviceText.text = string.Format("{0:D2}:{1:D2}:{2:D2}",Interval.Hours,Interval.Minutes,Interval.Seconds);
        }
    }

    //签到领取奖励Button
    public void OnSignClick()
    {
        isShowTime = true;
        reviceButton.interactable = false;
        reviceText.fontSize = 25;
        signNum++;//领取次数
        lastDay = today;
        PlayerPrefs.SetString(SignDataPrefs, today.ToString());
        PlayerPrefs.SetInt(SignNumPrefs, signNum);

        //TODO:奖励

    }

    //判断是否可以签到
    private bool IsOneDay()
    {
        if (lastDay.Year == today.Year && lastDay.Month == today.Month && lastDay.Day == today.Day)
        {
            return false;
        }
        if (DateTime.Compare(lastDay, today) < 0)//DateTime.Compare(t1,t2) 返回<0  t1<t2   等于0  t1=t2   返回>0 t1>t2
        {
            return true;
        }
        return false;
    }
}

这是10天的签到系统,想要几天的签到可以自己设置。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Unity实现单机游戏每日签到系统

    本文实例为大家分享了Unity实现每日签到系统的具体代码,供大家参考,具体内容如下 代码: using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class HallManager : UnitySingleton<HallManager>

  • unity3d实现七天签到功能

    本文实例为大家分享了unity3d实现七天签到功能的具体代码,供大家参考,具体内容如下 在很多游戏中都有签到功能,(这里记录的是7天连续签到功能的实现) 一.功能分析 1.当天是否签到的判断 2.签到天数是否连续和是否完成了7天的签到(不连续或者已经完成了7天连续签到,需要清楚数据,重新计算签到) 最主要的也就是这两个功能需要实现,其他的数据存储包括:连续签到次数,上一次签到日期. 下面的代码是默认签到送金币.不过使用的时候还是需要自己去删减或者增加自己的代码: using System.Col

  • Unity实现10天签到系统

    本文实例为大家分享了Unity实现10天签到系统的具体代码,供大家参考,具体内容如下 实现功能: 正常在游戏中签到,并把剩下的倒计时给显示出来.时间是变化的,没有用gif是显示,将就着看- 废话不多说,上代码: public class SignPanelUI : MonoBehaviour { public const string SignNumPrefs = "SignNum";//领取次数的字符串 public const string SignDataPrefs = &quo

  • 利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统

    基于python opencv人脸识别的签到系统前言先看下效果实现的功能开始准备页面的构建功能实现代码部分总结 前言 一个基于opencv人脸识别和TensorFlow进行模型训练的人脸实时签到系统,作者某二本大学里的末流学生,写于2019/09/,python学习期间. 今年7月份开始接触python的,最近闲着无事就开始做了这个人脸识别的系统,一开始的话就想着简单的弄下,就去了百度智能云用的api接口实现的,写完以后我就想为什么我不自己写一个人脸识别签到,不去调用百度api接口,然后就诞生了

  • python实现人脸签到系统

    本文实例为大家分享了python实现人脸签到系统的具体代码,供大家参考,具体内容如下 简易版人脸签到/签退系统 管理员可进行录入人脸操作,以及导出各类签到情况表: 普通学生只可人脸识别进行签到签退操作. face_Recognizer.py import cv2 import os import numpy as np from PIL import Image #pillow import pyttsx3 import sys import test.student_sql as connec

  • Python django框架开发发布会签到系统(web开发)

    引言 最近学习了虫师的发布会签到系统demo,结合自己所学django知识,对demo重新塑造了一下.也是为了练练手,巩固知识.现在就分享一下成果~ Django工作流 学习django web开发,先来简单了解一下django的工作机制,请看下图: 简单说明: 用户通过浏览器访问:http://127.0.0.1:8000/index,首先运行的是urlpatterns程序,通过url路由找到对应的视图函数views.py,视图函数处理所有逻辑和数据,并且将用户要的数据经过函数处理后通过ind

  • 使用Mongodb实现打卡签到系统的实例代码

    使用excel文件导入数据,整合mongodb实现打卡签到系统 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 主要技术:SpringBoot.Mongodb SpringBoot版本:2.2.6 实现步骤如下: 1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>

  • unity使用射线实现贴花系统

    本文实例为大家分享了Unity使用射线实现贴花系统,供大家参考,具体内容如下 老规矩,直接上代码: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; /// <summary> /// 贴花系统 /// </summary> public class Applique_ZH: MonoBehaviour { [H

  • unity自带寻路(导航)系统 Nav Mesh导航网格

    本文为大家分享了unity自带寻路(导航)系统的具体代码,供大家参考,具体内容如下 一.介绍 unity官方文档: 导航网格(即 Navigation Mesh,缩写为 NavMesh)是一种数据结构,用于描述游戏世界的可行走表面,并允许在游戏世界中寻找从一个可行走位置到另一个可行走位置的路径.该数据结构是从关卡几何体自动构建或烘焙的. 我们可以这么理解:它是unity官方自带的一种寻路系统.我们可以通过它来制作简单的寻路,比如可以制作点击某个位置,让角色自动的绕开障碍走到目标点的效果,比如可以

  • Unity 制作一个分数统计系统

    项目中经常遇到分数统计的需求,例如我们执行了某项操作或做了某个题目,操作正确则计分,相反则不计分失去该项分数,为了应对需求需要一个分数统计系统. 首先定义一个分数信息的数据结构,使用Serializable特性使其可序列化: using System; using UnityEngine; namespace SK.Framework { /// <summary> /// 分数信息 /// </summary> [Serializable] public class ScoreI

  • Unity基于ShaderLab实现光照系统(着色器代码实现小结)

    目录 一.着色器 1.顶点片元着色器 2.表面着色器 3.固定函数着色器 二.光照模型 1.逐顶点光照(Gourand Shading) 2.逐片元光照(Phong Shading) 3.HalfLambert 光照 4.逐顶点高光 5.逐像素高光 6.Bline-Phong光照模型 三.纹理贴图 1.单张纹理 2.法线纹理 3.渐变纹理 4.遮罩纹理 四.透明物体 1.透明测试 2.透明颜色混合 3.复杂模型双Pass颜色混合 4.透明混合渲染双面 五.复杂光照处理 1.复杂光照 2.阴影处理

随机推荐