unity后台加密时间锁

2023-11-20

前言:在做一些项目的时候,有些不良甲方在给完项目后会有不给尾款的情况。之前都是加一些水印啥的,感觉不是很方便,第一不美观,第二如果甲方给完尾款后还得重新打包去水印。然后又做过一个本地的时间锁,等到时间,程序直接退出。但是感觉还是不方便,有时候甲方明知道有时间锁,还是拖欠着尾款,你是给去时间锁还是不给去?有一次甲方就是不给尾款,重新打包了好多次。。。。。。
后来自己做了一个带后台的时间锁,所以这个方法是**程序运行的环境必须带网络————重点,如果程序不带网络不用看下文了**。
好了,下面给出具体代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[System.Serializable]
public class JsonDatas
{
    public List<lockData> lockDatas;
}
[System.Serializable]
public class lockData
{
    public string name;
    public int year;
    public int mouth;
    public int day;
}
public class TimeLock : MonoBehaviour
{
    int yearNow;
    int mouthNow;
    int dayNow;
    public string LocalName;
    // Start is called before the first frame update
    void Start()
    {
    }
    private void Update()
    {
        if (dayNow != System.DateTime.Now.Day || mouthNow != System.DateTime.Now.Month || yearNow != System.DateTime.Now.Year)
        {
            dayNow = System.DateTime.Now.Day;
            mouthNow = System.DateTime.Now.Month;
            yearNow = System.DateTime.Now.Year;
            StartCoroutine(IeGetData());
        }
    }
    IEnumerator IeGetData()
    {
        WWW www = new WWW("https://qcftimelock.oss-cn-shanghai.aliyuncs.com/TimeLock.txt");
        yield return www;
        if (www.error == "" || www.error == null)
        {
            Debug.Log(www.text);
            JsonDatas lockData = JsonUtility.FromJson<JsonDatas>(www.text);
            if (lockData == null)
            {
                Debug.Log("没数据");
                yield break;
            }
            for (int i = 0; i < lockData.lockDatas.Count; i++)
            {
                if (lockData.lockDatas[i].name == LocalName)
                {
                    if (yearNow > lockData.lockDatas[i].year)
                    {
                        Debug.Log("超过");
                        Application.Quit();
                    }
                    else if (yearNow == lockData.lockDatas[i].year && mouthNow > lockData.lockDatas[i].mouth)
                    {
                        Application.Quit();
                        Debug.Log("超过");
                    }
                    else if (yearNow == lockData.lockDatas[i].year && mouthNow == lockData.lockDatas[i].mouth && dayNow > lockData.lockDatas[i].day)
                    {
                        Application.Quit();
                        Debug.Log("超过");
                    }
                    else
                    {
                        Debug.Log("时间范围内");
                    }
                }
            }
            Debug.Log("没有问题");
        }
    }
}

 代码随便挂上一个物体,在Local Name里面填写你的项目名称

当然这个需要后台的,你可以自己弄一个oss,然后把文件链接在代码里面替换下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity后台加密时间锁 的相关文章

随机推荐

  • 关于.net连接字符串

    今天在看David Sceppa的 ADO NET 技术内幕 里面对 net连接字符串的描述很简单 让人一看就懂 一看能理解 连接字符串是什么 连接字符串是由一系列用分号隔开的 name value 组合 strConn Setting1
  • centos 通过yum安装nginx

    通过yum安装nginx 菜鸟一枚 不知道为什么nginx这个东西不在初始话的yum镜像里面 也不想通过编译方式安装nginx 看着闹心 那么怎么通过yum方式安装nginx呢 添加nginx包镜像地址 rpm ivh http nginx
  • python---函数名的使用

    函数名的多种用法 函数名当作变量名赋值 函数名当作函数的实参 函数名当作函数的返回值 函数名当作容器类型的元素 函数名当作变量名赋值 def index print from function index print index res i
  • android调用系统指纹设置页面录入指纹

    在做指纹登录时 有时候会遇到设备并未录入指纹 需要提示用户去开启 如果需要自动跳转到系统的指纹设置页面 录入指纹 那就需要调用系统组件 由于google加入指纹支持是在6 0 而国内很多厂商很早便加入了指纹支持 所以在这方面碎片化很严重 需
  • 火影手游为什么服务器维护,火影忍者手游安装失败解决方法 游戏闪退进不去怎么办...

    本文4399阿尔法将告诉大家火影忍者手游安装失败的原因以及解决方法 还会告诉大家游戏闪退进不去怎么办等等 下面就跟着小编一起来看看吧 gt gt gt gt gt 更多游戏攻略 进入4399火影忍者手游专区 lt lt lt lt lt 问
  • 65nm芯片流片费用_每年流片超40款客户芯片,国内第一的IP供应商芯原科创板上市获受理...

    文 Lee 图源 网络 集微网消息 9月20日 上交所受理了芯原微电子 上海 股份有限公司 以下简称 芯原 科创板上市申请 芯原选择的上市标准为 科创板上市规则 2 1 2中的第 四 项 预计市值不低于人民币30亿元 且最近一年营业收入不低
  • vscode配置clangd和clang-format

    vscode安装和配置 如何安装和配置vscode以搭建c 开发环境 可以查看我的另一篇博客 Windows上最轻量的vscode C 开发环境搭建 在这篇博客中 详细介绍了如何安装vscode以及应该安装哪些插件 这里不再赘述 vscod
  • 第14届蓝桥杯C++B组省赛

    文章目录 A 日期统计 B 01 串的熵 C 冶炼金属 D 飞机降落 E 接龙数列 F 岛屿个数 G 子串简写 H 整数删除 I 景区导游 J 砍树 今年比去年难好多 Update 2023 4 10 反转了 炼金二分没写错 可以AC了 U
  • 1051. 复数乘法 (15)

    复数可以写成 A Bi 的常规形式 其中A是实部 B是虚部 i是虚数单位 满足i2 1 也可以写成极坐标下的指数形式 R e Pi 其中R是复数模 P是辐角 i是虚数单位 其等价于三角形式 R cos P isin P 现给定两个复数的R和
  • 【机器学习】【逻辑回归】Logistic函数/Sigmoid函数的详细公式推导

    sigmoid函数的数学公式 sigmoid函数的因变量x取值范围是 到 但是sigmoid函数的值域是 0 1 不管x取什么值其对应的sigmoid函数值一定会落到 0 1 范围内 漂亮的logistic 曲线 sigmoid函数对应的图
  • Python timeit模块的使用

    Python timeit模块的使用 Python 中的 timeit 模块可以用来测试一段代码的执行耗时 如一个变量赋值语句的执行时间 一个函数的运行时间等 timeit 模块是 Python 标准库中的模块 无需安装 直接导入就可以使用
  • java readvalue_Java XmlMapper.readValue方法代碼示例

    本文整理匯總了Java中com fasterxml jackson dataformat xml XmlMapper readValue方法的典型用法代碼示例 如果您正苦於以下問題 Java XmlMapper readValue方法的具體
  • CUDA流任务并行

    CUDA流表示一个GPU操作队列 并且该队列中的操作将以指定的顺序执行 可以将每个流视为GPU的一个任务 并且这些任务可以并行执行 即相同流顺序执行 不同流并行执行 不同流并行执行时不同流所要执行的任务要没有依赖关系 当不手动创建流时 cu
  • Jmeter篇之beanshell加密和解密(SM2)

    需求 明文传参 对请求进行加密调用后台接口 后端返回密文响应结果 对返回结果进行解密 需求分析 1 参数明文填写入参 2 发送请求前对明文进行加密 加密后调用后台接口 3 后端返回密文响应结果 4 对响应结果进行解密 操作 1 打开jmet
  • Latex各种矩阵的输入方法

    代码顺序同上顺序 导言区 documentclass ctexart usepackage amsmath 正文区 begin document begin Bmatrix 1 2 4 5 end Bmatrix begin matrix
  • openGLSL从0开始学习

    首先 找了些优秀的学习网站 openGLSL https learnopengl cn github io https www khronos org files opengles shading language pdf 双缓冲 Doub
  • saltstack使用指南:编写自己的模块代码

    saltstack编写自己的模块代码 1 saltstack远程执行的底层原理 2 执行模块的组成结构 3 编写自己的执行模块函数 4 交叉调用salt自带的模块函数 5 实战编写一个完整的模块 一 saltstack远程执行的底层原理 s
  • [Vue warn]: Error in created hook: "TypeError: handler.call is not a function"

    此问题为调用中生命周期钩子函数引起来的错误 解决办法为 生命周期钩子函数 是否有未定义方法 还是 声名了空的钩子函数 另外
  • Ubuntu 安装指定版本 python

    场景 在构建 docker 镜像的时候为了与 TensorFlow Pytorch 或者其他程序能兼容使用 需要安装指定版本的 python 常用的安装命令 apt get 有时候不能很 精确 指定 甚至是找不到源 隔山修路 遇水搭桥 py
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时