PlayerPrefs存储数据
可理解为可持久化存储,还可以理解为游戏存档,玩RPG游戏的时候肯定有游戏游戏存档,存档中记录玩家以前游戏的过程,这些都是以数据的形式存在PlayerPrefs中。
On Mac OS X PlayerPrefs are stored in ~/Library/Preferences folder,in a dile named untiy.[company name].[product name].plist,where copmpany and product name are the names set up in project Settings.The same.plist file id used for both projects run in the Editor and standalone players.
在Mac OS X上存储在~/Library/PlayerPrefs文件夹,名为unity.[company name].[product name].plist,这里company和product名是在project Setting中设置的,相同的plist用于在编辑器中运行的工程和独立模式。
On Windows standalone plauers ,playerPrefs are stored in the registry under HKCU\Software\[compang name]\[product name]key,where company and product names are the names set up in project Settings;
在windows独立模式下,playerPrefs被存储在注册的HKCU\Software\[company name]\[product name]键下,这里company和product名是在project setting中设置的。
On Web Players,Playerprefs are stored in binary files unfer~/Library/Prefaerences/untiy/webPlayerprefs on Mac Os X and %APPDATA%\Untiy\WebPayerPrefs on Windows. There is one Preference file per Web Player URL and the file size is limited to 1 megabute.If this limit would be exceeded, SetInt,SetFloat and SetString will not store the value and threow a PlayerPrefsException.
在web模式,PlayerPrefs存储在Mac OS X的二进制文件~/Library/Preferences/Untiy/WebPlayerPrefs中和Windows的%APPARA%\Unity\WebPlayerPrefs中,一个游戏存档文件对应一个web播放器URL并且文件大小被限制为1MB。如果超出这个限制,SeTInt、SetFloat和SetString将不会存储值并抛出一个PlayerPrefsException。
On Linux PlayerPrefs are stored in ~/.config/Unity3d/[CompanyName]/[ProductName] folder.
在Linux上存储在~/.config/Unity3d/[CompanyName]/[ProductName]文件中.
示例:存储玩家姓名 年龄 成绩(简化)
通过UI界面中的InputFiled控件获取Text值 输出另一个场景中 用UGUI写出
1.先引入两个命名空间
using UnityEngin.UI;
using UnityEngine.SceneManagement;
2.定义公共类参数 分别为name_ft,age_ft,score_ft;
public InputField name_ft;
public InputField age_ft;
public InputField score_ft;
3.写一个button事件方法
public void StoreData()
{
//获取数据
string name=name_ft.text;
string age=age_ft.text;
string score=score_ft.text;
//存储数据
PlayerPrefs.SetString("Name",name);
PlayerPrefs.SetInt("age",int.Parse(age))
PlayerPrefs.SetFloat("Score",flaot.Parse(score));
//跳转场景 显示数据
SceneManager.LoadScene(1);
}
//场景2
//定义变量 用来接收数据
string unname;
int unage;
float unscore;
//使用OnGUI的方法
void OnGUI()
{
GUILayout.Label(unname);
GUILayout.Lable(unage.TOString());
GUILayout.Lable(unscore.ToString());
}
场景如图1,2。
XML数据生成和解析
XML指看扩展标记语言(Extensible Markup Language)
XML设计宗旨是传输数据,而非显示数据
XML继承结构
-System.Object
-System.Xml.XmlNode(表示XML节点)
+System.Xml.XmlDocument(表示XML文档)
+System.Xml.XmlAttribute(表示XML属性)
-System.Xml.XmlLinkedNode
+System.Xml.XmlElement(表示XML元素)
注:上面的 + 相当于文件的未打开 -文件打开的后
JSON数据生成和解析
JOSN是纯文本
JOSN是轻量级的数据交换
JOSN是具有层级结构(值中存在值)
JOSN语法
数据在键值对
数据由逗号分隔
花括号保存对象
方括号保存数组
使用前需要将 System.Json(便于json生成)和LitJson.dll(便于解析json)放入到Assets文件下
示例
//创建json对象,
JsonObject jsonTransform=new Jsonobject();
//创建一个json值对象,存储一个value
JsonValue jsonPosition="10,20,30";
//json对象,添加一个key:value
jsontrasnform.Add("position",jsontransform);
//打印结果
Debug.Log(jsonTrasnform.ToString(0);
结果显示;"position“:10,20,30
ListJson.JsonMapper
把对象转化成JSON格式字符串:JsonMaooer.ToJson
把JSON格式字符串转化成对象:JsonMapper.Toobject
这次就写到这里。如果有错留个消息给我就好,我会修改修改。