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

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

代码:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class HallManager : UnitySingleton<HallManager>
{
    public Text textSingInCoinDes, textSingInCoin;
    public Button btnSignInNormal, btnSignInAd;

    //------------------------------------------    签到模块    ------------------------------------------

    /// <summary>
    /// 设置签到数据
    /// </summary>
    public void SetSignInPanelData()
    {
        if (string.IsNullOrEmpty(PlayerPrefs.GetString("SignInDay7")))
        {
            for (int i = 0; i < 7; i++)
            {
                PlayerPrefs.SetString("SignInDay" + (i + 1), DateTime.Today.AddDays(i).ToShortDateString());
            }
        }
        for (int i = 0; i < 7; i++)
        {
            if (DateTime.Today.ToShortDateString().Equals(PlayerPrefs.GetString("SignInDay" + (i + 1))))
            {
                textSingInCoinDes.text = "今天领取";
                textSingInCoin.text = signInCoin[i].ToString();
                btnSignInNormal.gameObject.SetActive(true);
                btnSignInAd.gameObject.SetActive(true);
                signFinish.gameObject.SetActive(false);
            }
            else if ("已签到".Equals(PlayerPrefs.GetString("SignInDay" + (i + 1))) && i != 6)
            {
                textSingInCoinDes.text = "明天领取";
                textSingInCoin.text = signInCoin[i + 1].ToString();
                btnSignInNormal.gameObject.SetActive(false);
                btnSignInAd.gameObject.SetActive(false);
                signFinish.gameObject.SetActive(true);
            }
        }

        for (int i = 0; i < 7; i++)
        {
            if (DateTime.Today.ToShortDateString().Equals(PlayerPrefs.GetString("SignInDay" + (i + 1))) || "已签到".Equals(PlayerPrefs.GetString("SignInDay" + (i + 1))))
            {
                if ("已签到".Equals(PlayerPrefs.GetString("SignInDay" + (i + 1))))
                {
                    signInPanel.transform.Find("Items").GetChild(i).Find("YiQianDao").gameObject.SetActive(true);
                }
                else
                {
                    signInPanel.transform.Find("Items").GetChild(i).Find("YiQianDao").gameObject.SetActive(false);
                }
            }
        }
    }

    /// <summary>
    /// 点击普通签到
    /// </summary>
    void ClickBtnSignInNormal()
    {
        for (int i = 0; i < 7; i++)
        {
            if (DateTime.Today.ToShortDateString().Equals(PlayerPrefs.GetString("SignInDay" + (i + 1))))
            {
                CoinManager.Instance.AddCoin(signInCoin[i]);
                PlayerPrefs.SetString("SignInDay" + (i + 1), "已签到");
                ShowRewardPanel(signInCoin[i]);
            }
        }
        SetUserInfo();
        SetSignInPanelData();
        //全屏广告
        MobileController.Instance.CallFullScreenAd(FullScreenAdRewardType.None);
    }

    /// <summary>
    /// 点击视频双倍奖励签到
    /// </summary>
    void ClickSignInAd()
    {
        MobileController.Instance.CallVedioRewardAd("signIn");
    }

    /// <summary>
    /// 回调 - 视频双倍奖励签到
    /// </summary>
    public void CallBackSignInReward()
    {
        for (int i = 0; i < 7; i++)
        {
            if (DateTime.Today.ToShortDateString().Equals(PlayerPrefs.GetString("SignInDay" + (i + 1))))
            {
                CoinManager.Instance.AddCoin(signInCoin[i] * 2);
                PlayerPrefs.SetString("SignInDay" + (i + 1), "已签到");
                ShowRewardPanel(signInCoin[i] * 2);
            }
        }
        SetUserInfo();
        SetSignInPanelData();
    }
}

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

(0)

相关推荐

  • Unity实现10天签到系统

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

  • unity3d实现七天签到功能

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

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

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

  • 按键精灵在单机游戏的妙用

    很多人都用按键精灵玩网游 可有谁想过按键精灵可以用在单机游戏上? 我来举几个例子吧 1. 角色扮演 RPG - 很明显的,练级是乏味的,特别是在游戏后期,要杀好多个敌人才嗯能够升级,用按键精灵写个自动练级程序完全是可能的,特别是在现在很多RPG游戏都有"自动"这个功能的情况下,一场战斗后让他自动保存一下(当然,也要用精灵)否则死了就又得重新来啦,嘎嘎,如果你厉害,还能看你是不是死了,死了的话就 load,嘎嘎 2. 即时战略 RTS - 不错,就连即时战略游戏也可以用按键精灵,不知道大

  • 如何提高玩游戏时的系统稳定性

    有一台计算机运行普通的应用程序时一切正常,而且开关机也很顺利;但只要一玩起CS或3D之类的游戏程序时,就有可能出现无法进入游戏画面,或者玩一段时间后游戏程序就会自动关闭,甚至过不了多长时间系统还会发生死机现象.面对这种故障现象,我们该如何解决呢? 其实仔细分析上面的现象描述,我们不难发现该计算机系统在处理一些比较大型的游戏程序时,系统往往不能稳定地运行;造成这种现象的可能原因比较多,不同的故障原因需要用不同的方法来解决.这不本文下面特意总结了三招应对技巧,可以有效提高玩游戏时的系统稳定性. 1.

  • 基于JavaScript实现每日签到打卡轨迹功能

    本文实例为大家分享了js实现每日签到打卡轨迹功能的具体代码,供大家参考,具体内容如下 1. 核心文件 calendar.js var calUtil = { //当前日历显示的年份 showYear:2018, //当前日历显示的月份 showMonth:1, //当前日历显示的天数 showDays:1, eventName:"load", //初始化日历 init:function(signList){ calUtil.setMonthAndDay(); calUtil.draw(

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

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

  • 微信小程序本地存储实现每日签到、连续签到功能

    昨天在看自己写的小程序项目,无意中打开了CSDN APP,突然间觉得,我去,如果在小程序中加个"签到"功能,岂不美哉!(好吧,其实是买的书昨天没到货,然后闲着无事,就想起了大明湖畔的"签到") 但是吧,又不想写和服务器交互的,本着"简单点"的原则,我想起了曾经的挚爱-- 本地存储 . 先说说相关注意吧: 其一就是 storage中只能存放字符串! 我去,昨晚大部分时间都是在搞这个.以前一直认为存放的是对象,兴致勃勃写完发现点击以后出现了"

  • C#语言使用Unity实现剪刀石头布游戏

    本文实例为大家分享了C#语言使用Unity实现剪刀石头布游戏的具体代码,供大家参考,具体内容如下 游戏:剪刀石头布 实现功能: 1.电脑随机出牌(剪刀石头布) 2.玩家选择出牌(剪刀石头布) 3.玩家没有出牌时,电脑变幻牌面: 玩家出牌后,电脑出牌,并停止变幻牌面3秒,期间玩家无法选择出牌 4.玩家和电脑出牌后,电脑自动计分. using UnityEngine; using System.Collections; public class hw0310a : MonoBehaviour { /

  • js实现每日签到功能

    本文实例为大家分享了js实现每日签到功能的具体代码,供大家参考,具体内容如下 js: var calUtil = { getDaysInmonth : function(iMonth, iYear){ //当前年月的总天数 var dPrevDate = new Date(iYear, iMonth, 0); return dPrevDate.getDate(); }, bulidCal : function(iYear, iMonth) { //构建当前年月对应的日历 var aMonth =

  • php实现每日签到功能

    每日签到的功能,供大家参考,具体内容如下 首次签到获得1个积分,第二次签到获得2个积分,第三次签到获得3个积分,以此类推但是签到必须每天连续积分才可以递增,如果有中断再次签到时获得积分仍然从1开始递增; user: id,username,count,point,sign_time sign.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&

随机推荐