步骤
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.运行工程,点击按钮,发现程序打印字符串的功能已经被锁定了,因为日期不在区间内,如下图所示:
本文介绍如何使用Unity通过日期锁定游戏功能。通过配置文件设置日期范围,并利用C#脚本检查当前日期是否处于允许运行的范围内。若在范围内,则游戏正常运行;反之,则锁定部分功能。
1544

被折叠的 条评论
为什么被折叠?



