Unityはチェックインシステムを実装しています

プロジェクトでサインインシステムを使用しているので、入手しました。他のサインインシステムは以下のとおりです

using UnityEngine;
using System.Collections;
using System;
using MyGameFrameWork;

public class SignInSystemMgr:BaseManager<SignInSystemMgr>
{
    
    
    /// <summary>
    /// 获取当前游戏签到的次数
    /// </summary>
    /// <returns></returns>
    public int GetSignNum()
    {
    
    
        if (PlayerPrefs.HasKey("SignNum"))
            return PlayerPrefs.GetInt("SignNum");
        return 0;
    }
    /// <summary>
    /// 设置当前游戏签到的次数具体是多少
    /// </summary>
    /// <param name="num"></param>
    public void SetSignNum(int num)
    {
    
    
        PlayerPrefs.SetInt("SignNum", num);
    }
    /// <summary>
    /// 获取上次签到日期
    /// </summary>
    /// <returns></returns>
    public string GetSignData()
    {
    
    
        if (PlayerPrefs.HasKey("SignData"))
            return PlayerPrefs.GetString("SignData");
        return DateTime.MinValue.ToString();
    }

   


    public void DeletSignNumAndSignData()
    {
    
    
        PlayerPrefs.DeleteKey("SignNum");
        PlayerPrefs.DeleteKey("SignData");
    }
    /// <summary>
    /// 设置上次签到日期
    /// </summary>
    /// <param name="data"></param>
    public void SetSignData(DateTime data)
    {
    
    
        PlayerPrefs.SetString("SignData", data.ToString());
        TodayData = DateTime.Parse(PlayerPrefs.GetString("SignData"));
        SignData = data;
    }

    int SignNum;//签到次数
    DateTime TodayData;
    DateTime SignData;
  

    public void InitMyData()
    {
    
    
        TodayData = DateTime.Now;
        Debug.Log("签名今天日期:" + TodayData);
        SignNum= GetSignNum();
        Debug.Log("签名获取签到的个数" + SignNum);
        SignData = DateTime.Parse(GetSignData());
        Debug.Log("签名SignData:" + SignData);
    }

    public DateTime GetTodayData()
    {
    
    
        return TodayData;
    }

    public DateTime GetSignDataFunction()
    {
    
    
        return SignData;
    }

    public bool IsOneDay(DateTime t1,DateTime t2)
    {
    
    
        return (t1.Year == t2.Year && t1.Month == t2.Month && t1.Day == t2.Day);
    }

    public bool NeedClean()
    {
    
    
        TimeSpan TsNow = new TimeSpan(TodayData.Ticks);
        TimeSpan TsSign = new TimeSpan(SignData.Ticks);
        TimeSpan TsDur = TsNow.Subtract(TsSign).Duration();
        //SignNum = GetSignNum();
        if(TsDur.Days>1)
        {
    
    
            return true;
        }
        else
        {
    
    
            return false;
        }
    }


}

おすすめ

転載: blog.csdn.net/charlsdm/article/details/123507522