首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在unity中,top如何在特定日期-时间后终止exe

问在unity中,top如何在特定日期-时间后终止exe
EN

Stack Overflow用户
提问于 2018-01-29 17:43:56
回答 2查看 486关注 0票数 1

我正在开发unity build (exe),并试图实现这样一种算法,在一定时间后(例如,一周或一个月后)使我的播放器过期。以下是完整的测试代码,但有一个小问题(实际上是大问题):

代码语言:javascript
复制
public class LocalLimitedDaysLicense : MonoBehaviour
{

    float numberOfDays = 3;
    public string currentDate;
    bool isShowExpiryMessage;

    void Awake()
    {
        string playerPrefKeyName = "PlayerStartDateKey";

        currentDate = DateTime.Now.ToString();

        string playerStartDate = PlayerPrefs.GetString(playerPrefKeyName, "");

        if (!PlayerPrefs.HasKey(playerPrefKeyName))
        {
            Debug.Log("Player Start Date Setting");
            PlayerPrefs.SetString(playerPrefKeyName, currentDate);
        }
        else
        {
            Debug.Log("Player Start Date already Set");
        }


        string playerPrefsSaveDate = PlayerPrefs.GetString(playerPrefKeyName);

        DateTime today = DateTime.Now;




        DateTime playerFirstActiveDate = Convert.ToDateTime(PlayerPrefs.GetString(playerPrefKeyName));
        DateTime playerLimitDate = playerFirstActiveDate.AddDays(numberOfDays);


        if (DateTime.Compare(today, playerLimitDate) > 0)//confirm that 
        {
            Time.timeScale = 0;
            isShowExpiryMessage = true;
        }

        if (DateTime.Compare(today, playerFirstActiveDate) < 0)//Confirm that user didn't change the date of system
        {
            Time.timeScale = 0;
            isShowExpiryMessage = true;
        }
    }

    void OnGUI()
    {
        if (isShowExpiryMessage)
        {
            GUI.Label(new Rect((Screen.width / 2) - 100, Screen.height / 2, 300, 100), "Sorry the exe has expired.!");
        }
    }
}

如果在构建过程中经过了某些天,它会真正停止程序,但问题是,如果用户删除旧的构建并再次安装该构建,那么它将再次允许三天。

EN

回答 2

Stack Overflow用户

发布于 2018-01-29 17:51:15

1.创建一个web API,将日期注册到服务器数据库。

2.创建另一个接口,根据您的播放器过期逻辑返回true或false,并在每次游戏开始时触发该接口。

票数 1
EN

Stack Overflow用户

发布于 2018-01-29 17:55:44

仅从客户端是不可能控制的。

不要试图通过仅信任来自客户端的信息来强制实施安全功能。特别是那些可以简单地在服务器端检查的东西。

按照Reezoo Bose的建议,您应该实现一些服务器端检查。

(如果您想要防止黑客攻击此保护,您还应该使用正确的身份验证和消息签名来保护通信。当然,这取决于您愿意保护您的软件免受哪些“技术级别”用户的攻击。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48498294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档