Unity实现根据日期锁定逻辑功能

本文介绍如何使用Unity通过日期锁定游戏功能。通过配置文件设置日期范围,并利用C#脚本检查当前日期是否处于允许运行的范围内。若在范围内,则游戏正常运行;反之,则锁定部分功能。

步骤

1.在StreamingAssets文件夹下添加Config.txt文件,添加配置文件功能(配置文件功能在之前的博客介绍过,在这里不赘述),配置文件里的两个参数是用日期转成的16进制数,转成16进制可以避免其他人随意改程序锁定日期。如配置文件内容下图所示:
2.编写LockTest.cs脚本,实现根据日期锁定程序功能的基本功能,代码如下所示: `sing System; using System.Collections; using System.Collections.Generic; using UnityEngine;
public class LockTest : MonoBehaviour { //限定最小时间字符串 string minLockTime; //到期时间字符串 string maxLockTime; //最小时间整形 int minTime = 0; //到期时间整型 int maxTime = 0; //配置文件管理类 public ConfigTest configTest; //游戏管理类 public ThisGameManager gameManager;
    
// Use this for initialization void Start ( ) { BeginString ( ) ; StartCoroutine ( ToLockThis ( ) ) ; } /// <summary> /// 初始化数据 /// </summary> void BeginString ( ) { minLockTime = configTest . dic [ "激活码" ] [ "min" ] ; maxLockTime = configTest . dic [ "激活码" ] [ "max" ] ; } /// <summary> /// 根据日期锁定 /// </summary> /// <returns></returns> IEnumerator ToLockThis ( ) { yield return new WaitForSeconds ( 0.1f ) ; ToChangeTen ( ) ; yield return new WaitForSeconds ( 0.1f ) ; BeginToLock ( ) ; } /// <summary> /// 十六进制字符转换为十进制字符 /// </summary> void ToChangeTen ( ) { minTime = Convert . ToInt32 ( minLockTime , 16 ) ; maxTime = Convert . ToInt32 ( maxLockTime , 16 ) ; } /// <summary> /// 根据日期锁定游戏 /// </summary> void BeginToLock ( ) { int todayTime = int . Parse ( System . DateTime . Now . ToString ( "yyyyMMdd" ) ) ; if ( ( todayTime >= minTime ) && ( todayTime <= maxTime ) ) { gameManager . CanSend = true ; } else { gameManager . CanSend = false ; } }
}`
3.将该脚本挂载到场景中的lockTest物体上,将configTest赋值到该物体上,如下图所示:
4.编写ThisGameManager.cs脚本,编写调用锁定功能的方法,代码如下所示: `using System.Collections; using System.Collections.Generic; using UnityEngine;
public class ThisGameManager : MonoBehaviour { //是否可以发生数据 public bool CanSend = true;
    
/// <summary> /// 发送数据 /// </summary> public void ToSendThis ( ) { if ( CanSend ) { Debug . Log ( "已触发!" ) ; } }
}` 5.将该脚本挂载到场景中的物体上,将其赋值到lockTest物体上,如下图所示:
6.将ThisGameManager中的ToSendThis方法挂载到场景中的按钮上,如下图所示:
7.运行项目,连续点击按钮,发现打印控制台打印出了字符串,如下图所示:
8.将配置文件中的参数改为16进制的其他日期,如20201001~20201020的16进制参数,保存,如下图所示:
9.运行工程,点击按钮,发现程序打印字符串的功能已经被锁定了,因为日期不在区间内,如下图所示:

相关连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值