版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床输血安全管理要点
- 新解读《DBJT 15-137-2018一体化预制泵站工程技术规范 》
- 福建省漳州市2023-2024学年高二下学期期末质量检测语文试卷(解析版)
- 2024光功率预测系统运行标准
- 人力资源政策对服务业人才流动影响的研究
- 股权结构对公司环境责任意识的影响研究
- unit1(基础作业)2024-2025学年六年级上册 英语 人教版
- 心理健康专题课件02大学生心理健康讲座
- 云人工智能行业消费者群体特征分析
- 2023年若尔盖县紧密型县域医共体相关专业人员招聘考试试题及答案
- SL-T+62-2020水工建筑物水泥灌浆施工技术规范
- 中班诗歌《美丽的祖国》课件
- 2023超星尔雅《创新创业》答案
- 小学思政课《爱国主义教育》
- 苏教版小学科学三年级上册全册完整课件
- 外贸报关用发票、装箱单、合同、报关单模板
- 质量管理——以海尔企业为例
- 《中国神话故事》名著导读读后感PPT模板下载
- 八年级数学上册同步讲义+提高练习题
- 乡镇人大主席团第三季度工作汇报
- 回转窑结构及其工作原理
评论
0/150
提交评论