欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

unity3d實(shí)現(xiàn)七天簽到功能

 更新時(shí)間:2021年04月20日 14:23:38   作者:yffgamestart  
這篇文章主要為大家詳細(xì)介紹了unity3d實(shí)現(xiàn)七天簽到功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了unity3d實(shí)現(xiàn)七天簽到功能的具體代碼,供大家參考,具體內(nèi)容如下

在很多游戲中都有簽到功能,(這里記錄的是7天連續(xù)簽到功能的實(shí)現(xiàn))

一、功能分析

1.當(dāng)天是否簽到的判斷
2.簽到天數(shù)是否連續(xù)和是否完成了7天的簽到(不連續(xù)或者已經(jīng)完成了7天連續(xù)簽到,需要清楚數(shù)據(jù),重新計(jì)算簽到)

最主要的也就是這兩個(gè)功能需要實(shí)現(xiàn),其他的數(shù)據(jù)存儲(chǔ)包括:連續(xù)簽到次數(shù),上一次簽到日期。

下面的代碼是默認(rèn)簽到送金幣。不過使用的時(shí)候還是需要自己去刪減或者增加自己的代碼:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;
using DG.Tweening;
public class Jungle_DailyCheck : MonoBehaviour
{
    /// <summary>
    /// 獲取簽到次數(shù)
    /// </summary>
    /// <returns>The sign number.</returns>
    public int GetSignNum()
    {
        if (PlayerPrefs.HasKey("signNum"))
            return PlayerPrefs.GetInt("signNum");
        return 0;
    }
    /// <summary>
    /// 設(shè)置簽到次數(shù)
    /// </summary>
    /// <param name="num">Number.</param>
    public void SetSignNum(int num)
    {
        PlayerPrefs.SetInt("signNum", num);
    }
    /// <summary>
    /// 獲取上次簽到日期
    /// </summary>
    /// <returns>The sign data.</returns>
    public string GetSignData()
    {
        if (PlayerPrefs.HasKey("signData"))
            return PlayerPrefs.GetString("signData");
        return DateTime.MinValue.ToString();
    }
    /// <summary>
    /// 設(shè)置上次簽到日期
    /// </summary>
    public void SetSignData(DateTime data)
    {
        PlayerPrefs.SetString("signData", data.ToString());
    }
    int signNum;//簽到次數(shù)
    DateTime today;//今日日期
    DateTime signData;//上次簽到日期
    private bool isRewardTake = false;
    public Text text_Getcoin;
    private void Start()
    {
        today = DateTime.Now;
        signNum = GetSignNum();
        signData = DateTime.Parse(GetSignData());

        if (IsOneDay(signData, today))
        {
            return;
        }
        //  Debug.Log(string.Format("lastSign==={0},today===={1}", signData, today));
        //新的簽到周期,需要清除簽到存檔(清楚簽到次數(shù)和上一次簽到日期)
        if (NeedClean())
        {
            PlayerPrefs.DeleteKey("signNum");
            PlayerPrefs.DeleteKey("signData");
        }
        signNum = GetSignNum();

        OnBtnGetRewordClick();
    }
    //簽到按鈕點(diǎn)擊
    public void OnBtnGetRewordClick()
    {
        signNum++;
        signData = today;
        //更新存檔
        SetSignData(signData);
        SetSignNum(signNum);
        //給用戶加金幣
        DataManager.instance.SetCoin(DataManager.instance.GetCoin() + signNum * 3);
        text_Getcoin.transform.GetChild(0).GetComponent<Text>().text = "Get" + " " + signNum * 3 + " coins";
        text_Getcoin.gameObject.SetActive(true);
        text_Getcoin.transform.GetChild(0).transform.DOScale(1.2f, 2.5f).onComplete = delegate
        {
            text_Getcoin.transform.GetChild(0).transform.localScale = new Vector3(1, 1, 1);
            text_Getcoin.gameObject.SetActive(false);

        };
    }
    //判斷是否是同一天
    bool IsOneDay(DateTime t1, DateTime t2)
    {
        return (t1.Year == t2.Year &&
         t1.Month == t2.Month &&
          t1.Day == t2.Day);
    }
    //需要清除數(shù)據(jù)(當(dāng)簽到天數(shù)大于等于7天或者簽到間隔大約一天,則重置數(shù)據(jù))
    bool NeedClean()
    {
        TimeSpan tsNow = new TimeSpan(today.Ticks);
        TimeSpan tsSign = new TimeSpan(signData.Ticks);
        TimeSpan tsDur = tsNow.Subtract(tsSign).Duration();
        // Debug.Log(string.Format("days====={0},hours======{1},minutes====={2}", tsDur.Days, tsDur.Hours, tsDur.Minutes));
        signNum = GetSignNum();
        if (signNum >= 7 || tsDur.Days > 1)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#算法之回文數(shù)

    C#算法之回文數(shù)

    這篇文章介紹了C#算法之回文數(shù),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C#基礎(chǔ)概念二十五問 16-20

    C#基礎(chǔ)概念二十五問 16-20

    C#基礎(chǔ)概念二十五問 16-20...
    2007-04-04
  • C#中l(wèi)ock死鎖實(shí)例教程

    C#中l(wèi)ock死鎖實(shí)例教程

    這篇文章主要介紹了C#中l(wèi)ock死鎖的用法,對(duì)于共享資源的訪問及C#程序設(shè)計(jì)的安全性而言,有著非常重要的意義!需要的朋友可以參考下
    2014-08-08
  • Unity UGUI Shadow陰影組件的介紹使用示例

    Unity UGUI Shadow陰影組件的介紹使用示例

    這篇文章主要為大家介紹了Unity UGUI Shadow陰影組件的介紹使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Unity3d實(shí)現(xiàn)跑馬燈廣播效果

    Unity3d實(shí)現(xiàn)跑馬燈廣播效果

    這篇文章主要為大家詳細(xì)介紹了Unity3d實(shí)現(xiàn)跑馬燈廣播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • IIS下調(diào)用證書出現(xiàn)異常的解決方法 (C#)

    IIS下調(diào)用證書出現(xiàn)異常的解決方法 (C#)

    這篇文章主要為大家詳細(xì)介紹了IIS下調(diào)用證書出現(xiàn)異常的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#實(shí)現(xiàn)銷售管理系統(tǒng)

    C#實(shí)現(xiàn)銷售管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)銷售管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C# 9.0新特性——只初始化設(shè)置器

    C# 9.0新特性——只初始化設(shè)置器

    這篇文章主要介紹了C# 9.0新特性——只初始化設(shè)置器的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-11-11
  • C#中使用?record?的好處和最佳場(chǎng)景

    C#中使用?record?的好處和最佳場(chǎng)景

    這篇文章主要介紹了C#中使用?record?的好處,使用?record?類型的主要好處包括簡潔的語法、自動(dòng)生成的成員、基于值的相等性、非破壞性復(fù)制、解構(gòu)支持、繼承支持和與模式匹配的良好集成,需要的朋友可以參考下
    2024-07-07
  • C#操作windows注冊(cè)表的方法

    C#操作windows注冊(cè)表的方法

    這篇文章主要介紹了C#操作windows注冊(cè)表的方法,涉及C#針對(duì)注冊(cè)表的讀取與寫入技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04

最新評(píng)論