Unity3D教程保存或读取数据组的方法.docx

上传人:b****8 文档编号:11336009 上传时间:2023-02-27 格式:DOCX 页数:13 大小:18.97KB
下载 相关 举报
Unity3D教程保存或读取数据组的方法.docx_第1页
第1页 / 共13页
Unity3D教程保存或读取数据组的方法.docx_第2页
第2页 / 共13页
Unity3D教程保存或读取数据组的方法.docx_第3页
第3页 / 共13页
Unity3D教程保存或读取数据组的方法.docx_第4页
第4页 / 共13页
Unity3D教程保存或读取数据组的方法.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Unity3D教程保存或读取数据组的方法.docx

《Unity3D教程保存或读取数据组的方法.docx》由会员分享,可在线阅读,更多相关《Unity3D教程保存或读取数据组的方法.docx(13页珍藏版)》请在冰豆网上搜索。

Unity3D教程保存或读取数据组的方法.docx

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模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1