Unity3D教程保存或读取数据组的方法.docx
- 文档编号:11336009
- 上传时间:2023-02-27
- 格式:DOCX
- 页数:13
- 大小:18.97KB
Unity3D教程保存或读取数据组的方法.docx
《Unity3D教程保存或读取数据组的方法.docx》由会员分享,可在线阅读,更多相关《Unity3D教程保存或读取数据组的方法.docx(13页珍藏版)》请在冰豆网上搜索。
Unity3D教程保存或读取数据组的方法
Unity3D教程:
保存或读取数据组的方法
Postedon2013年02月05日byU3d/Unity3D基础教程/被围观195次
Unity本身有PlayerPrefs来做一些数据的保存和读取,也可以通过循环来做批量的读取或者保存,下面这个脚本可以方便的调用用来做上面批量的工作,比如读取一组文本数组数据和保存一组文本数组数据.Unity3D教程:
Unity3D实用小功能
建议把这个脚本放在StandardAssets目录下,这样可以按照下面的方法方便的调用它。
现在包含了下面这些命令:
PlayerPrefsX.SetVector3
PlayerPrefsX。
GetVector3
PlayerPrefsX。
SetIntArray
PlayerPrefsX.GetIntArray
PlayerPrefsX。
SetFloatArray
PlayerPrefsX。
GetFloatArray
PlayerPrefsX。
SetStringArray
PlayerPrefsX。
GetStringArray
保存一个向量:
staticfunctionSetVector3(key:
string,value:
Vector3):
boolean
//尝试保存一个物体位置
varplayer:
GameObject;
if(!
PlayerPrefsX.SetVector3(”PlayerPosition”,player.transform。
position))
print(”不能保存物体位置!
”);
成功返回真,否则假(例如用Webplayer保存超过1M数据的时候)。
获得一个向量:
varplayer:
GameObject;
player.transform.position=PlayerPrefsX.GetVector3("PlayerPosition");
如果读取的向量存在的话将会返回这个向量值.
保存一组整型数据:
//当保存Scores命名的分数时候创建一个10成员数组
varmyScores=newint[10];
for(i=0;i〈myScores。
Length;i++)
myScores=i+1;
if(!
PlayerPrefsX.SetIntArray("Scores",myScores))
print(”不能保存分数!
");
获得一组整型数据:
staticfunctionGetIntArray(key:
string):
int[]
如果存在将返回这组数据,否则将返回int[0];
varscores=PlayerPrefsX.GetIntArray(”Scores");
staticfunctionGetIntArray(key:
string,defaultValue:
int,defaultSize:
int):
int[]
如果不存在这组数据,将返回指定长度的数组以及每个成员都会赋予默认值.
其他函数的使用方法:
staticfunctionSetFloatArray(key:
string,value:
float[]):
boolean
staticfunctionGetFloatArray(key:
string):
float[]
staticfunctionGetFloatArray(key:
string,defaultValue:
float,defaultSize:
int):
float[]
staticfunctionSetStringArray(key:
string,value:
String[]):
boolean
staticfunctionSetStringArray(key:
string,value:
String[],separator:
char):
boolean
staticfunctionGetStringArray(key:
string):
string[]
staticfunctionGetStringArray(key:
string,separator:
char):
string[]
staticfunctionGetStringArray(key:
string,defaultValue:
String,defaultSize:
int):
string[]
staticfunctionGetStringArray(key:
string,separator:
char,defaultValue:
String,defaultSize:
int):
string[]
该脚本的Javascript版:
//Siteofthisscript:
〈ahref="http:
//www。
unifycommunity。
com/wiki/index.php?
title=ArrayPrefs”target="_blank”rel=”external”>http:
//www。
unifycommunity。
com/wiki/index.php?
title=ArrayPrefs
//Createdby:
EricHaines(Eric5h5)
//Contribution(Set/GetVector3)03/2010:
MarioMadureiraFontes(fontmaster)
staticfunctionSetVector3(key:
String,vector:
Vector3):
boolean{
returnSetFloatArray(key,[vector.x,vector.y,vector.z]);
}
staticfunctionGetVector3(key:
String):
Vector3{
varfloatArray=GetFloatArray(key);
if(floatArray.Length<3){
returnVector3.zero;
}
returnVector3(floatArray[0],floatArray[1],floatArray[2]);
}
staticfunctionSetIntArray(key:
String,intArray:
int[]):
boolean{
if(intArray。
Length==0)returnfalse;
varsb=newSystem。
Text.StringBuilder();
for(i=0;i〈intArray。
Length—1;i++){
sb.Append(intArray[i]).Append("|");
}
sb.Append(intArray[i]);
try{
PlayerPrefs。
SetString(key,sb.ToString());
}
catch(err){
returnfalse;
}
returntrue;
}
staticfunctionGetIntArray(key:
String):
int[]{
if(PlayerPrefs。
HasKey(key)){
varstringArray=PlayerPrefs.GetString(key)。
Split(”|"[0]);
varintArray=newint[stringArray.Length];
for(i=0;i〈stringArray.Length;i++){
intArray[i]=parseInt(stringArray[i]);
}
returnintArray;
}
returnnewint[0];
}
staticfunctionGetIntArray(key:
String,defaultValue:
int,defaultSize:
int):
int[]{
if(PlayerPrefs.HasKey(key)){
returnGetIntArray(key);
}
varintArray=newint[defaultSize];
for(i=0;i〈defaultSize;i++){
intArray[i]=defaultValue;
}
returnintArray;
}
staticfunctionSetFloatArray(key:
String,floatArray:
float[]):
boolean{
if(floatArray。
Length==0)returnfalse;
varsb=newSystem.Text。
StringBuilder();
for(i=0;i Length—1;i++){ sb.Append(floatArray[i]).Append("|”); } sb。 Append(floatArray[i]); try{ PlayerPrefs.SetString(key,sb。 ToString()); } catch(err){ returnfalse; } returntrue; } staticfunctionGetFloatArray(key: String): float[]{ if(PlayerPrefs.HasKey(key)){ varstringArray=PlayerPrefs.GetString(key).Split(”|"[0]); varfloatArray=newfloat[stringArray。 Length]; for(i=0;i〈stringArray。 Length;i++){ floatArray[i]=parseFloat(stringArray[i]); } returnfloatArray; } returnnewfloat[0]; } staticfunctionGetFloatArray(key: String,defaultValue: float,defaultSize: int): float[]{ if(PlayerPrefs.HasKey(key)){ returnGetFloatArray(key); } varfloatArray=newfloat[defaultSize]; for(i=0;i floatArray[i]=defaultValue; } returnfloatArray; } staticfunctionSetStringArray(key: String,stringArray: String[],separator: char): boolean{ if(stringArray。 Length==0)returnfalse; try{ PlayerPrefs.SetString(key,String.Join(separator。 ToString(),stringArray)); } catch(err){ returnfalse; } returntrue; } staticfunctionSetStringArray(key: String,stringArray: String[]): boolean{ if(! SetStringArray(key,stringArray,"\n”[0])){ returnfalse; } returntrue; } staticfunctionGetStringArray(key: String,separator: char): String[]{ if(PlayerPrefs.HasKey(key)){ returnPlayerPrefs。 GetString(key)。 Split(separator); } returnnewString[0]; } staticfunctionGetStringArray(key: String): String[]{ if(PlayerPrefs.HasKey(key)){ returnPlayerPrefs.GetString(key).Split("\n"[0]); } returnnewString[0]; } staticfunctionGetStringArray(key: String,separator: char,defaultValue: String,defaultSize: int): String[]{ if(PlayerPrefs.HasKey(key)){ returnPlayerPrefs.GetString(key)。 Split(separator); } varstringArray=newString[defaultSize]; for(i=0;i stringArray[i]=defaultValue; } returnstringArray; } staticfunctionGetStringArray(key: String,defaultValue: String,defaultSize: int): String[]{ returnGetStringArray(key,"\n"[0],defaultValue,defaultSize); } 该脚本的C#版: //Contribution(CreatedCSharpVersion)10/2010: DanielP.Rossi(DR9885) //Contribution(CreatedBoolArray)10/2010: DanielP.Rossi(DR9885) //Contribution(Madefunctionspublic)01/2011: Bren usingUnityEngine; usingSystem; publicstaticclassPlayerPrefsX { #regionVector3 /// ///StoresaVector3valueintoaKey ///〈/summary〉 publicstaticboolSetVector3(stringkey,Vector3vector) { returnSetFloatArray(key,newfloat[3]{vector。 x,vector.y,vector。 z}); } /// ///FindsaVector3valuefromaKey ///〈/summary〉 publicstaticVector3GetVector3(stringkey) { float[]floatArray=GetFloatArray(key); if(floatArray.Length<3) returnVector3。 zero; returnnewVector3(floatArray[0],floatArray[1],floatArray[2]); } #endregion #regionBoolArray /// ///StoresaBoolArrayorMultipleParametersintoaKey /// publicstaticboolSetBoolArray(stringkey,paramsbool[]boolArray) { if(boolArray.Length==0)returnfalse; System.Text。 StringBuildersb=newSystem。 Text。 StringBuilder(); for(inti=0;i sb。 Append(boolArray[i]).Append(”|”); sb。 Append(boolArray[boolArray.Length—1]); try{PlayerPrefs。 SetString(key,sb。 ToString());} catch(Exceptione){returnfalse;} returntrue; } ///〈summary〉 ///ReturnsaBoolArrayfromaKey /// publicstaticbool[]GetBoolArray(stringkey) { if(PlayerPrefs。 HasKey(key)) { string[]stringArray=PlayerPrefs。 GetString(key)。 Split("|"[0]); bool[]boolArray=newbool[stringArray。 Length]; for(inti=0;i boolArray[i]=Convert。 ToBoolean(stringArray[i]); returnboolArray; } returnnewbool[0]; } /// ///ReturnsaBoolArrayfromaKey ///Note: Usesdefaultvaluestoinitializeifnokeywasfound /// publicstaticbool[]GetBoolArray(stringkey,booldefaultValue,intdefaultSize) { if(PlayerPrefs.HasKey(key)) returnGetBoolArray(key); bool[]boolArray=newbool[defaultSize]; for(inti=0;i boolArray[i]=defaultValue; returnboolArray; } #endregion #regionIntArray ///〈summary〉 ///StoresaIntArrayorMultipleParametersintoaKey ///〈/summary〉 publicstaticboolSetIntArray(stringkey,paramsint[]intArray) { if(intArray。 Length==0)returnfalse; System.Text.StringBuildersb=newSystem。 Text.StringBuilder(); for(inti=0;i〈intArray.Length—1;i++) sb.Append(intArray[i]).Append(”|"); sb.Append(intArray[intArray.Length—1]); try{PlayerPrefs。 SetString(key,sb。 ToString());} catch(Exceptione){returnfalse;} returntrue; } /// ///ReturnsaIntArrayfromaKey /// publicstaticint[]GetIntArray(stringkey) { if(PlayerPrefs。 HasKey(key)) { string[]stringArray=PlayerPrefs.GetString(key)。 Split(”|”[0]); int[]intArray=newint[stringArray。 Length]; for(inti=0;i〈stringArray。 Length;i++) intArray[i]=Convert.ToInt32(stringArray[i]); returnintArray; } returnnewint[0]; } ///〈summary> ///ReturnsaIntArrayfromaKey ///Note: Usesdefaultvaluestoinitializeifnokeywasfound /// publicstaticint[]GetIntArray(stringkey,intdefaultValue,intdefaultSize) { if(PlayerPrefs。 HasKey(key)) returnGetIntArray(key); int[]intArray=newint[defaultSize]; for(inti=0;i intArray[i]=defaultValue; returnintArray; } #endregion #regionFloatArray /// ///StoresaFloatArrayorMultipleParametersintoaKey /// publicstaticboolSetFloatArray(stringkey,paramsfloat[]floatArray) { if(floatArray。 Length==0)returnfalse; System。 Text。 StringBuildersb=newSystem.Text。 StringBuilder(); for(inti=0;i〈floatArray。 Length—1;i++) sb。 Append(floatArray[i])。 Append("|"); s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Unity3D 教程 保存 读取 数据 方法
![提示](https://static.bdocx.com/images/bang_tan.gif)