当前位置: 首页 > news >正文

最新的域名最好的网站优化公司

最新的域名,最好的网站优化公司,通过手机建设网站,南昌市市政建设有限公司Unity带有时效性的数据存储 引言 在Unity项目开发中,有时候会遇到带有时效性的数据存储,比如账号信息、token等,都是具有时效性的,这时候我们就需要在这些信息过期的时候将对应的信息作废。 实现 这个功能怎么实现呢&#xff…

Unity带有时效性的数据存储

引言

在Unity项目开发中,有时候会遇到带有时效性的数据存储,比如账号信息、token等,都是具有时效性的,这时候我们就需要在这些信息过期的时候将对应的信息作废。

实现

这个功能怎么实现呢,还是利用Unity自带的PlayerPrefs功能来存储数据,只是在存储的时候,如果数据有时效性,我们需要给数据再存储一个对应的key值来记录时间。获取数据的时候,如果数据有时效性,我们判断对应的时间戳来判定数据的有效性。

完整代码

using System;
using UnityEngine;/// <summary>
/// 本地数据缓存
/// Playerprefs的封装
/// </summary>
public class LocalCache
{/// <summary>/// 时间戳结尾/// </summary>public const string TimeEnd = "_TIMEEND";/// <summary>/// 获取缓存的string数据/// </summary>/// <param name="key"></param>/// <returns>返回结果可能为空</returns>public static string GetString(string key){string timeKey = key + TimeEnd;if (PlayerPrefs.HasKey(timeKey)){long time = long.Parse(PlayerPrefs.GetString(timeKey));if (CurrentTime() > time){//信息过期作废PlayerPrefs.DeleteKey(key);PlayerPrefs.DeleteKey(timeKey);return null;}else{return PlayerPrefs.GetString(key);}}else{return PlayerPrefs.GetString(key);}}/// <summary>/// 存储string/// </summary>/// <param name="key"></param>/// <param name="value"></param>/// <param name="time">小于等于0表示永久存储,其他表示有存储时间,单位毫秒(ms)</param>public static void SetString(string key, string value, int time = -1){PlayerPrefs.SetString(key, value);if (time > 0){//存储对应的时间戳string timeKey = key + TimeEnd;double currentTime = CurrentTime();long endTime = (long)(currentTime + time);PlayerPrefs.SetString(timeKey, endTime.ToString());}}/// <summary>/// 获取缓存的string数据/// </summary>/// <param name="key"></param>/// <returns>返回结果可能为空</returns>public static int? GetInt(string key){string timeKey = key + TimeEnd;if (PlayerPrefs.HasKey(timeKey)){long time = long.Parse(PlayerPrefs.GetString(timeKey));if (CurrentTime() > time){//信息过期作废PlayerPrefs.DeleteKey(key);PlayerPrefs.DeleteKey(timeKey);return null;}else{return PlayerPrefs.GetInt(key);}}else{return PlayerPrefs.GetInt(key);}}/// <summary>/// 存储string/// </summary>/// <param name="key"></param>/// <param name="value"></param>/// <param name="time">小于等于0表示永久存储,其他表示有存储时间,单位毫秒(ms)</param>public static void SetInt(string key, int value, int time = -1){PlayerPrefs.SetInt(key, value);if (time > 0){//存储对应的时间戳string timeKey = key + TimeEnd;double currentTime = CurrentTime();long endTime = (long)(currentTime + time);PlayerPrefs.SetString(timeKey, endTime.ToString());}}/// <summary>/// 获取缓存的string数据/// </summary>/// <param name="key"></param>/// <returns>返回结果可能为空</returns>public static float? GetFloat(string key){string timeKey = key + TimeEnd;if (PlayerPrefs.HasKey(timeKey)){long time = long.Parse(PlayerPrefs.GetString(timeKey));if (CurrentTime() > time){//信息过期作废PlayerPrefs.DeleteKey(key);PlayerPrefs.DeleteKey(timeKey);return null;}else{return PlayerPrefs.GetFloat(key);}}else{return PlayerPrefs.GetFloat(key);}}/// <summary>/// 存储string/// </summary>/// <param name="key"></param>/// <param name="value"></param>/// <param name="time">小于等于0表示永久存储,其他表示有存储时间,单位毫秒(ms)</param>public static void SetFloat(string key, float value, int time = -1){PlayerPrefs.SetFloat(key, value);if (time > 0){//存储对应的时间戳string timeKey = key + TimeEnd;double currentTime = CurrentTime();long endTime = (long)(currentTime + time);PlayerPrefs.SetString(timeKey, endTime.ToString());}}/// <summary>/// 获取当前时间的时间戳/// </summary>/// <returns></returns>public static double CurrentTime(){return (DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds;}
}

尾语

这里实现的只是个小功能,但是平时多记录一些这种小功能,可以减少正式项目开发中的很多时间,毕竟这种小功能从开发到测试还是需要不少时间的。

如果有些的不对的地方,欢迎各位大佬批评指正。

http://www.mmbaike.com/news/92284.html

相关文章:

  • 网站建设模块方案商家推广平台有哪些
  • 石家庄快速网站搭建一年的百度指数
  • 陕西省中小学教师培训网站如何销售自己产品方法有哪些
  • 广州专业的免费建站seo外包公司哪家好
  • 便宜做网站线上推广产品
  • 网站栏目定位百度云网页版登录入口
  • 两学一做 山西答题网站济南网站建设公司选济南网络
  • 可以做司考真题的网站2023新闻热点摘抄
  • 建站系统社区百度推广平台登录网址
  • 深圳本地做网站青岛网络推广公司哪家好
  • 自己怎么开发社交app软件seo排名大概多少钱
  • 品牌手机网站开发seo优化交流
  • 厦门做网站软件泉州排名推广
  • wordpress例温州企业网站排名优化
  • 网站开发的后台开发工具seo搜索优化
  • 上海网站建设推荐案例制作网站的最大公司
  • 哪个网站做公司业务广告效果好武汉推广服务
  • 做网站要备案产品软文范例1000字
  • 网站是怎么搭建的搜索引擎seo优化平台
  • php旅游网站cms网站开发需要的技术
  • 摄影图片网站百度手机助手app下载安装
  • 150网站建设seo入门培训学多久
  • 抖抈短视频app下载安装百度地图排名怎么优化
  • 白银市住房与建设局网站十大计算机培训机构排名
  • 北京网站搭建多少钱企业网站建设方案模板
  • 商城小程序哪家好南京谷歌seo
  • 头像设计制作网站搜索引擎营销方法有哪些
  • 社会保险网上服务平台官网网站seo优化方法
  • 什么网站可以做医疗设备的网站在线客服系统源码
  • 个人 可以备案做分类信息网站吗外贸营销型网站制作