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后台加密时间锁 的相关文章

  • 检查空参数的最佳方法(保护子句)

    例如 您通常不希望构造函数中的参数为空 因此看到类似的内容是很正常的 if someArg null throw new ArgumentNullException nameof someArg if otherArg null throw
  • Windows 上使用 g++ 的 Makefile,链接库

    我已经厌倦了 MSVC 6 以及每个人总是告诉我它是一个蹩脚的编译器等等 所以现在我决定尝试使用 vim 加 g 和 makefile 这是我的问题 我有以下 makefile This is supposed to be a commen
  • MVC 重定向到没有控制器的视图

    希望应该是一个简单的 我创建了一个通用错误视图 当整个站点的操作方法内发生异常时 我想显示该视图 我创建了一个部分页面 所有导航都位于其中 因此我不需要在此视图上使用控制器 那么如何从控制器内的操作方法重定向到它 像这样的东西 HttpPo
  • 如何将pdf页面设置设置为打印属性对话框?

    大家好 我想知道如何设置 pdf 页面设置到打印属性对话框 例如 如果我的 PDF 页面设置为横向 则布局会自动显示横向而不是纵向 如果我的 PDF 页面设置为纵向 则布局会自动显示纵向 我在这个主题上做了很多研发 但没有找到任何满意的链接
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • 在 GCC 和 Clang 下,使用 lambda 的简单 RAII 包装器的复制初始化意外失败

    我在创建一个简单的 RAII 包装器时遇到了一个意想不到的问题 更不用说下面代码的逻辑不完整性了 复制构造函数和赋值运算符未删除等 这意味着是一个SSCCE 令我印象深刻的是复制初始化我的包装器与临时 lambda 的结果会导致编译错误 而
  • 将 C# 反射代码移植到 Metro-Ui

    我正在尝试移植使用反射的现有 C 类 通用工厂 但我无法编译这段代码 Type types Assembly GetAssembly typeof TProduct GetTypes foreach Type type in types i
  • F10键没被抓住

    I have a Windows Form and there overriden ProcessCmdKey However this works with all of the F Keys except for F10 I am tr
  • 将成员函数作为参数传递/c++

    我想用 C 实现一个类b可以通过封装该迭代器类型的成员集进行某种迭代 喜欢 b object for each x do function f so 函数 f会得到每个人的x成员并做任何事情 比方说 void function f x me
  • 特定设备的不同字体大小

    我目前正在开发通用应用程序 我需要分别处理移动设备和桌面的文本框字体大小 我找到了一些方法 但都不能解决问题 使用 VisualStateManager 和 StateTrigger 为例
  • .net Framework (.net 4.0) 中定义 Base 3 数字的类

    我正在寻找一些可以用来定义 3 基数 三进制数 的类 有什么我可以在 net 框架中使用的东西或者我需要写一些东西吗 谢谢你的帮助 您可以使用解析Convert ToInt32 s base http msdn microsoft com
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 指示泛型返回动态类型的对象

    这个问题是我原来问题的后续问题here https stackoverflow com questions 2541184 using a type object to create a generic 假设我有以下泛型类 简化 class
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • realloc():重新分配为 char * 上的 strcat 腾出空间时下一个大小无效 [重复]

    这个问题在这里已经有答案了 我在以下代码中收到无效内存错误 printf s n FINE 5 printf s LENGTH IS d n FINE 6 strlen buffer char realloc buffer strlen b
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • 程序退出后,TcpListener Socket 仍处于活动状态

    当我的程序退出时 我试图停止 TCP 侦听器 我不关心套接字或任何活动客户端套接字上当前活动的任何数据 套接字清理代码本质上是 try myServer Server Shutdown SocketShutdown Both catch E
  • 通过 cmake 链接作为外部项目包含的 opencv 库[重复]

    这个问题在这里已经有答案了 我对 cmake 比较陌生 经过几天的努力无法弄清楚以下事情 我有一个依赖于 opencv 的项目 它本身就是一个 cmake 项目 我想静态链接 opencv 库 我正在做的是我的项目中有一份 opencv 源

随机推荐

  • 关于.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后台加密时间锁

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