Unity3D教程:保存或读取数据组的方法_第1页
Unity3D教程:保存或读取数据组的方法_第2页
Unity3D教程:保存或读取数据组的方法_第3页
Unity3D教程:保存或读取数据组的方法_第4页
Unity3D教程:保存或读取数据组的方法_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.Unity3D教程:保存或读取数据组的方法Postedon2013年02月05日byU3d/Unity3D根底教程/被围观195次Unity本身有PlayerPrefs来做一些数据的保存和读取,也可以通过循环来做批量的读取或者保存,下面这个脚本可以方便的调用用来做上面批量的工作,比方读取一组文本数组数据和保存一组文本数组数据。Unity3D教程:Unity3D实用小功能建议把这个脚本放在StandardAssets目录下,这样可以按照下面的方法方便的调用它.现在包含了下面这些命令:PlayerPrefs*.SetVector3PlayerPrefs*.GetVector3PlayerPrefs*.SetIntArrayPlayerPrefs*.GetIntArrayPlayerPrefs*.SetFloatArrayPlayerPrefs*.GetFloatArrayPlayerPrefs*.SetStringArrayPlayerPrefs*.GetStringArray保存一个向量:staticfunctionSetVector3(key:string,value:Vector3):boolean//尝试保存一个物体位置varplayer:GameObject;if(!PlayerPrefs*.SetVector3("PlayerPosition",player.transform.position))print("不能保存物体位置!");成功返回真,否则假(例如用Webplayer保存超过1M数据的时候)。获得一个向量:varplayer:GameObject;player.transform.position=PlayerPrefs*.GetVector3("PlayerPosition");如果读取的向量存在的话将会返回这个向量值。保存一组整型数据://当保存Scores命名的分数时候创立一个10成员数组varmyScores=newint[10];for(i=0;i<myScores.Length;i++)myScores=i+1;if(!PlayerPrefs*.SetIntArray("Scores",myScores))print("不能保存分数!");获得一组整型数据:staticfunctionGetIntArray(key:string):int[]如果存在将返回这组数据,否则将返回int[0];varscores=PlayerPrefs*.GetIntArray("Scores");staticfunctionGetIntArray(key:string,defaultValue:int,defaultSize:int):int[]如果不存在这组数据,将返回指定长度的数组以及每个成员都会赋予默认值.其他函数的使用方法:staticfunctionSetFloatArray(key:string,value:float[]):booleanstaticfunctionGetFloatArray(key:string):float[]staticfunctionGetFloatArray(key:string,defaultValue:float,defaultSize:int):float[]staticfunctionSetStringArray(key:string,value:String[]):booleanstaticfunctionSetStringArray(key:string,value:String[],separator:char):booleanstaticfunctionGetStringArray(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=".unifymunity./wiki/inde*.php"title=ArrayPrefs"target="_blank"rel="e*ternal">.unifymunity./wiki/inde*.php"title=ArrayPrefs</a>

//Createdby:EricHaines(Eric5h5)

//Contribution(Set/GetVector3)03/2010:MarioMadureiraFontes(fontmaster)

staticfunctionSetVector3(key:String,vector:Vector3):boolean{

returnSetFloatArray(key,[vector.*,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.Te*t.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.Te*t.StringBuilder();

for(i=0;i<floatArray.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<defaultSize;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<defaultSize;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;

publicstaticclassPlayerPrefs*

{

#regionVector3

///<summary>

///StoresaVector3valueintoaKey

///</summary>

publicstaticboolSetVector3(stringkey,Vector3vector)

{

returnSetFloatArray(key,newfloat[3]{vector.*,vector.y,vector.z});

}

///<summary>

///FindsaVector3valuefromaKey

///</summary>

publicstaticVector3GetVector3(stringkey)

{

float[]floatArray=GetFloatArray(key);

if(floatArray.Length<3)

returnVector3.zero;

returnnewVector3(floatArray[0],floatArray[1],floatArray[2]);

}

#endregion

#regionBoolArray

///<summary>

///StoresaBoolArrayorMultipleParametersintoaKey

///</summary>

publicstaticboolSetBoolArray(stringkey,paramsbool[]boolArray)

{

if(boolArray.Length==0)returnfalse;

System.Te*t.StringBuildersb=newSystem.Te*t.StringBuilder();

for(inti=0;i<boolArray.Length-1;i++)

sb.Append(boolArray[i]).Append("|");

sb.Append(boolArray[boolArray.Length-1]);

try{PlayerPrefs.SetString(key,sb.ToString());}

catch(E*ceptione){returnfalse;}

returntrue;

}

///<summary>

///ReturnsaBoolArrayfromaKey

///</summary>

publicstaticbool[]GetBoolArray(stringkey)

{

if(PlayerPrefs.HasKey(key))

{

string[]stringArray=PlayerPrefs.GetString(key).Split("|"[0]);

bool[]boolArray=newbool[stringArray.Length];

for(inti=0;i<stringArray.Length;i++)

boolArray[i]=Convert.ToBoolean(stringArray[i]);

returnboolArray;

}

returnnewbool[0];

}

///<summary>

///ReturnsaBoolArrayfromaKey

///Note:Usesdefaultvaluestoinitializeifnokeywasfound

///</summary>

publicstaticbool[]GetBoolArray(stringkey,booldefaultValue,intdefaultSize)

{

if(PlayerPrefs.HasKey(key))

returnGetBoolArray(key);

bool[]boolArray=newbool[defaultSize];

for(inti=0;i<defaultSize;i++)

boolArray[i]=defaultValue;

returnboolArray;

}

#endregion

#regionIntArray

///<summary>

///StoresaIntArrayorMultipleParametersintoaKey

///</summary>

publicstaticboolSetIntArray(stringkey,paramsint[]intArray)

{

if(intArray.Length==0)returnfalse;

System.Te*t.StringBuildersb=newSystem.Te*t.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(E*ceptione){returnfalse;}

returntrue;

}

///<summary>

///ReturnsaIntArrayfromaKey

///</summary>

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

///</summary>

publicstaticint[]GetIntArray(stringkey,intdefaultValue,intdefaultSize)

{

if(PlayerPrefs.HasKey(key))

returnGetIntArray(key);

int[]intArray=newint[defaultSize];

for(inti=0;i<defaultSize;i++)

intArray[i]=defaultValue;

returnintArray;

}

#endregion

#regionFloatArray

///<summary>

///StoresaFloatArrayorMultipleParametersintoaKey

///</summary>

publicstaticboolSetFloatArray(stringkey,paramsfloat[]floatArray)

{

if(floatArray.Length==0)returnfalse;

System.Te*t.StringBuildersb=newSystem.Te*t.StringBuilder();

for(inti=0;i<floatArray.Length-1;i++)

sb.Append(floatArray[i]).Append("|");

sb.Append(floatArray[floatArray.Length-1]);

try

{

PlayerPrefs.SetString(key,sb.ToString());

}

catch(E*ceptione)

{

returnfalse;

}

returntrue;

}

///<summary>

///ReturnsaFloatArrayfromaKey

///</summary>

publicstaticfloat[]GetFloatArray(stringkey)

{

if(PlayerPrefs.HasKey(key))

{

string[]stringArray=PlayerPrefs.GetString(key).Split("|"[0]);

float[]floatArray=newfloat[stringArray.Length];

for(inti=0;i<stringArray.Length;i++)

floatArray[i]=Convert.ToSingle(stringArray[i]);

returnfloatArray;

}

returnnewfloat[0];

}

///<summary>

///ReturnsaStringArrayfromaKey

///Note:Usesdefaultvaluestoinitializeifnokeywasfound

///</summary>

publicstaticfloat[]GetFloatArray(stringkey,floatdefaultValue,intdefaultSize)

{

if(PlayerPrefs.HasKey(key))

returnGetFloatArray(key);

float[]floatArray=newfloat[defaultSize];

for(inti=0;i<defaultSize;i++)

floatArray[i]=defaultValue;

returnfloatArray;

}

#endregion

#regionStringArray

///<summary>

///StoresaStringArrayorMultipleParametersintoaKeyw/specificcharseperator

///</summary>

publicstaticboolSetStringArray(stringkey,charseparator,paramsstring[]stringArray)

{

if(stringArray.Length==0)returnfalse;

try

{PlayerPrefs.SetString(key,String.Join(separator.ToString(),stringArray));}

catch(E*ceptione)

{returnfalse;}

returntrue;

}

///<summary>

///StoresaBoolArrayorMultipleParametersintoaKey

///</summary>

publicstaticboolSetStringArray(stringkey,paramsstring[]stringArray)

{

if(!SetStringArray(key,"\n"[0],stringArray))

returnfalse;

returntr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论