Unity3D存储PlayerPrefs 用法

using UnityEngine;
using System.Xml.Serialization;
using System.IO;
public class StateStorage{
public static T LoadData( string key ){
if ( PlayerPrefs.HasKey( key ) ) {
XmlSerializer serializer = new XmlSerializer( typeof( T ) );
StringReader sr = new StringReader( PlayerPrefs.GetString( key ) );
return ( T )serializer.Deserialize( sr );
}else{
return default(T);
}
}
public static void SaveData( string key, T source ){
XmlSerializer serializer = new XmlSerializer( typeof( T ) );
StringWriter sw = new StringWriter();
serializer.Serialize( sw, source );
PlayerPrefs.SetString( key, sw.ToString() );
}
public static void ClearData( string key ){
PlayerPrefs.DeleteKey( key );
}
}

原文地址:https://www.cnblogs.com/allyh/p/11380464.html

时间: 2024-10-31 07:21:05

Unity3D存储PlayerPrefs 用法的相关文章

Unity3d中SendMessage 用法简单笔记

Unity3d中SendMessage 用法简单笔记 Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions)  //自身和子Object的ScriptSendMessageUpwards ("函数名",参数,SendMessageOptions)  //自

Unity3d数据存储 PlayerPrefs,XML,Json数据的存储与解析

今天来复习一下数据存储方面的基础知识,Unity3d中常用的数据存储方式有Unity自带的PlayerPrefs, XML文档, Json文档,还有常用的轻量级数据库SQL, 涉及的琐碎知识非常多,在这里自己归纳总结一下,方便日后温故而知新. PlayerPrefs存储数据 PlayerPrefs的存储方式非常简单,但可用性不强,一般只用于调试过程存储少量数据,很少大范围使用 适用设备:Mac OSX, Linux, Windows,Web Players 存储机制:Key-Value (类似于

localStorage本地存储的用法

localStorage用法 if(window.localStorage){ alert('这个浏览器支持本地存储'); }else{ alert('这个浏览器支持不本地存储'); } localStorage.a=3;//设置a为"3" localStorage["a"]="sfsf";//设置a为"sfsf",覆盖上面的值 localStorage.setItem("b","isaac&qu

Unity3D的LightProbe用法

之前曾经介绍过Unity3D的LightMapping烘焙的用法.单独使用的LightMapping效果很好,但由于只是把光影烘焙到贴图上面,所以并不会对周围的动态物体产生真正的光照效果.这次来介绍一下LightProbe,这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果.更多内容请访问狗刨学习网http://www.gopedu.com 接下来说一下具体的用法: 首先在场景里面随意的放了一些物体,搭建了一个场景,里面有一盏直射灯,两盏不同颜色的点光

MySQL中merge表存储引擎用法

在Mysql数据库中,Merge表有点类似于视图.mysql的merge引擎类型允许你把许多结构相同的表合并为一个表.之后,你可以执行查询,从多个表返回的结果就像从一个表返回的结果一样.每一个合并的表必须有完全相同表的定义和结构. Mysql Merge表的优点:A. 分离静态的和动态的数据B. 利用结构接近的的数据来优化查询C. 查询时可以访问更少的数据D. 更容易维护大数据集E. 可以通过修改.mrg文件来修改Merge表,当然也可以用alter进行修改,修改后要通过FLUSH TABLES

Unity3d中SendMessage 用法

Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions)  //自身和子Object的ScriptSendMessageUpwards ("函数名",参数,SendMessageOptions)  //自身和父Object的Script用于向某个GameOb

数据库 日历表存储-with用法

--1.连续数字表drop table NumsCREATE TABLE Nums(n int NOT NULL PRIMARY KEY CLUSTERED) WITH B1 AS(SELECT n=1 UNION ALL SELECT n=1), --2B2 AS(SELECT n=1 FROM B1 a CROSS JOIN B1 b), --4B3 AS(SELECT n=1 FROM B2 a CROSS JOIN B2 b), --16B4 AS(SELECT n=1 FROM B3

Unity3D各平台Application.xxxPath的路径

前几天我们游戏在一个同事的Android手机上启动时无法正常进入,经查发现Application.temporaryCachePath和Application.persistentDataPath返回空字符串.便花时间认真研究了一下Unity3D的路径问题.我们常用的是以下四个路径: Application.dataPath Application.streamingAssetsPath Application.persistentDataPath Application.temporaryCa

【温故而知新-Javascript】使用Web存储

Web存储允许我们在浏览器里保存简单的键/值数据.Web存储和cookie很相似,但它有着更好的实现方式,能保存的数据量也很大.这两种类型共享相同的机制,但是被保存数据的可见性和寿命存在区别. PS:还有一种存储规范名为“索引数据库API”(Indexed Database API),它允许保存富格式数据和进行SQL风格的查询. 1.使用本地存储 我们可以通过全局属性 localStorage访问本地存储功能.这个属性会返回一个Storage 对象,下表对其进行了介绍.Storage 对象被用来