




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Unity3D教程:保存或读取数据组的方法 Posted on 2013年02月05日 by U3d / Unity3D 基础教程/被围观 195 次 Unity本身有PlayerPrefs来做一些数据的保存和读取,也可以通过循环来做批量的读取或者保存,下面这个脚本可以方便的调用用来做上面批量的工作,比如读取一组文本数组数据和保存一组文本数组数据。Unity3D教程:Unity3D实用小功能建议把这个脚本放在Standard Assets目录下,这样可以按照下面的方法方便的调用它.现在包含了下面这些命令:PlayerPrefsX.SetVector3PlayerPrefsX.GetVector3PlayerPrefsX.SetIntArrayPlayerPrefsX.GetIntArrayPlayerPrefsX.SetFloatArrayPlayerPrefsX.GetFloatArrayPlayerPrefsX.SetStringArrayPlayerPrefsX.GetStringArray保存一个向量:static function SetVector3 (key : string, value : Vector3) : boolean/尝试保存一个物体位置var player : GameObject;if (!PlayerPrefsX.SetVector3(PlayerPosition, player.transform.position)print(不能保存物体位置!);成功返回真,否则假(例如用Webplayer保存超过1M数据的时候)。获得一个向量:var player : GameObject;player.transform.position = PlayerPrefsX.GetVector3(PlayerPosition);如果读取的向量存在的话将会返回这个向量值。保存一组整型数据:/当保存Scores命名的分数时候创建一个10成员数组var myScores = new int10;for (i = 0; i myScores.Length; i+)myScores = i+1;if (!PlayerPrefsX.SetIntArray(Scores, myScores)print(不能保存分数!);获得一组整型数据:static function GetIntArray (key : string) : int如果存在将返回这组数据,否则将返回int0;var scores = PlayerPrefsX.GetIntArray(Scores);static function GetIntArray (key : string, defaultValue : int, defaultSize : int) : int如果不存在这组数据,将返回指定长度的数组以及每个成员都会赋予默认值.其他函数的使用方法:static function SetFloatArray (key : string, value : float) : booleanstatic function GetFloatArray (key : string) : floatstatic function GetFloatArray (key : string, defaultValue : float, defaultSize : int) : floatstatic function SetStringArray (key : string, value : String) : booleanstatic function SetStringArray (key : string, value : String, separator : char) : booleanstatic function GetStringArray (key : string) : stringstatic function GetStringArray (key : string, separator : char) : stringstatic function GetStringArray (key : string, defaultValue : String, defaultSize : int) : stringstatic function GetStringArray (key : string, separator : char, defaultValue : String, defaultSize : int) : string该脚本的Javascript版:/ Site of this script: /wiki/index.php?title=ArrayPrefs/ Created by: Eric Haines (Eric5h5)/ Contribution (Set/Get Vector3) 03/2010: Mario Madureira Fontes (fontmaster)static function SetVector3 (key : String, vector : Vector3) : boolean return SetFloatArray(key, vector.x, vector.y, vector.z);static function GetVector3 (key : String) : Vector3 var floatArray = GetFloatArray(key);if (floatArray.Length 3) return Vector3.zero;return Vector3(floatArray0, floatArray1, floatArray2);static function SetIntArray (key : String, intArray : int) : boolean if (intArray.Length = 0) return false;var sb = new System.Text.StringBuilder();for (i = 0; i intArray.Length-1; i+) sb.Append(intArrayi).Append(|);sb.Append(intArrayi);try PlayerPrefs.SetString(key, sb.ToString();catch (err) return false;return true;static function GetIntArray (key : String) : int if (PlayerPrefs.HasKey(key) var stringArray = PlayerPrefs.GetString(key).Split(|0);var intArray = new intstringArray.Length;for (i = 0; i stringArray.Length; i+) intArrayi = parseInt(stringArrayi);return intArray;return new int0;static function GetIntArray (key : String, defaultValue : int, defaultSize : int) : int if (PlayerPrefs.HasKey(key) return GetIntArray(key);var intArray = new intdefaultSize;for (i = 0; i defaultSize; i+) intArrayi = defaultValue;return intArray;static function SetFloatArray (key : String, floatArray : float) : boolean if (floatArray.Length = 0) return false;var sb = new System.Text.StringBuilder();for (i = 0; i floatArray.Length-1; i+) sb.Append(floatArrayi).Append(|);sb.Append(floatArrayi);try PlayerPrefs.SetString(key, sb.ToString();catch (err) return false;return true;static function GetFloatArray (key : String) : float if (PlayerPrefs.HasKey(key) var stringArray = PlayerPrefs.GetString(key).Split(|0);var floatArray = new floatstringArray.Length;for (i = 0; i stringArray.Length; i+) floatArrayi = parseFloat(stringArrayi);return floatArray;return new float0;static function GetFloatArray (key : String, defaultValue : float, defaultSize : int) : float if (PlayerPrefs.HasKey(key) return GetFloatArray(key);var floatArray = new floatdefaultSize;for (i = 0; i defaultSize; i+) floatArrayi = defaultValue;return floatArray;static function SetStringArray (key : String, stringArray : String, separator : char) : boolean if (stringArray.Length = 0) return false;try PlayerPrefs.SetString(key, String.Join(separator.ToString(), stringArray);catch (err) return false;return true;static function SetStringArray (key : String, stringArray : String) : boolean if (!SetStringArray(key, stringArray, n0) return false;return true;static function GetStringArray (key : String, separator : char) : String if (PlayerPrefs.HasKey(key) return PlayerPrefs.GetString(key).Split(separator);return new String0;static function GetStringArray (key : String) : String if (PlayerPrefs.HasKey(key) return PlayerPrefs.GetString(key).Split(n0);return new String0;static function GetStringArray (key : String, separator : char, defaultValue : String, defaultSize : int) : String if (PlayerPrefs.HasKey(key) return PlayerPrefs.GetString(key).Split(separator);var stringArray = new StringdefaultSize;for (i = 0; i defaultSize; i+) stringArrayi = defaultValue;return stringArray;static function GetStringArray (key : String, defaultValue : String, defaultSize : int) : String return GetStringArray(key, n0, defaultValue, defaultSize);该脚本的C#版:/ Contribution (Created CSharp Version) 10/2010: Daniel P. Rossi (DR9885)/ Contribution (Created Bool Array) 10/2010: Daniel P. Rossi (DR9885)/ Contribution (Made functions public) 01/2011: Brenusing UnityEngine;using System;public static class PlayerPrefsX#region Vector 3/ / Stores a Vector3 value into a Key/ public static bool SetVector3(string key, Vector3 vector)return SetFloatArray(key, new float3 vector.x, vector.y, vector.z );/ / Finds a Vector3 value from a Key/ public static Vector3 GetVector3(string key)float floatArray = GetFloatArray(key);if (floatArray.Length 3)return Vector3.zero;return new Vector3(floatArray0, floatArray1, floatArray2);#endregion#region Bool Array/ / Stores a Bool Array or Multiple Parameters into a Key/ public static bool SetBoolArray(string key, params bool boolArray)if (boolArray.Length = 0) return false;System.Text.StringBuilder sb = new System.Text.StringBuilder();for (int i = 0; i boolArray.Length - 1; i+)sb.Append(boolArrayi).Append(|);sb.Append(boolArrayboolArray.Length - 1);try PlayerPrefs.SetString(key, sb.ToString(); catch (Exception e) return false; return true;/ / Returns a Bool Array from a Key/ public static bool GetBoolArray(string key)if (PlayerPrefs.HasKey(key)string stringArray = PlayerPrefs.GetString(key).Split(|0);bool boolArray = new boolstringArray.Length;for (int i = 0; i stringArray.Length; i+)boolArrayi = Convert.ToBoolean(stringArrayi);return boolArray;return new bool0;/ / Returns a Bool Array from a Key/ Note: Uses default values to initialize if no key was found/ public static bool GetBoolArray(string key, bool defaultValue, int defaultSize)if (PlayerPrefs.HasKey(key)return GetBoolArray(key);bool boolArray = new booldefaultSize;for (int i = 0; i defaultSize; i+)boolArrayi = defaultValue;return boolArray;#endregion#region Int Array/ / Stores a Int Array or Multiple Parameters into a Key/ public static bool SetIntArray(string key, params int intArray)if (intArray.Length = 0) return false;System.Text.StringBuilder sb = new System.Text.StringBuilder();for (int i = 0; i intArray.Length - 1; i+)sb.Append(intArrayi).Append(|);sb.Append(intArrayintArray.Length - 1);try PlayerPrefs.SetString(key, sb.ToString(); catch (Exception e) return false; return true;/ / Returns a Int Array from a Key/ public static int GetIntArray(string key)if (PlayerPrefs.HasKey(key)string stringArray = PlayerPrefs.GetString(key).Split(|0);int intArray = new intstringArray.Length;for (int i = 0; i stringArray.Length; i+)intArrayi = Convert.ToInt32(stringArrayi);return intArray;return new int0;/ / Returns a Int Array from a Key/ Note: Uses default values to initialize if no key was found/ public static int GetIntArray(string key, int defaultValue, int defaultSize)if (PlayerPrefs.HasKey(key)return GetIntArray(key);int intArray = new intdefaultSize;for (int i = 0; i defaultSize; i+)intArrayi = defaultValue;return intArray;#endregion#region Float Array/ / Stores a Float Array or Multiple Parameters into a Key/ public static bool SetFloatArray(string key, params float floatArray)if (floatArray.Length = 0) return false;System.Text.StringBuilder sb = new System.Text.StringBuilder();for (int i = 0; i floatArray.Length - 1; i+)sb.Append(floatArrayi).Append(|);sb.Append(floatArrayfloatArray.Length - 1);tryPlayerPrefs.SetString(key, sb.ToString();catch (Exception e)return false;return true;/ / Returns a Float Array from a Key/ public static float GetFloatArray(string key)if (PlayerPrefs.HasKey(key)string stringArray = PlayerPrefs.GetString(key).Split(|0);float floatArray = new floatstringArray.Length;for (int i = 0; i stringArray.Length; i+)floatArrayi = Convert.ToSingle(stringArrayi);return floatArray;return new float0;/ / Returns a String Array from a Key/ Note: Uses default values to initialize if no key was found/ public static float GetFloatArray(string key, float defaultValue, int defaultSize)if (PlayerPrefs.HasKey(key)return GetFloatArray(key);float floatArray = new floatdefaultSize;for (int i = 0; i defaultSize; i+)floatArrayi = defaultValue;return floatArray;#endregion#region String Array/ / Stores a String Array or Multiple Parameters into a Key w/ specific char seperator/ public static bool SetStringArray(string key, char separator, params string stringArray)if (stringArray.Length = 0) return false;try PlayerPrefs.SetString(key, String.Join(separator.ToString(), stringArray); catch (Exception e) return false; return true;/ / Stores a Bool Array or Multiple Parameters into a Key/ public static bool SetStringArray(string key, params string stringArray)if (!SetStringArray(k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中信银行长沙市长沙县2025秋招无领导小组面试案例库
- 光大银行青岛市胶州市2025秋招无领导模拟题角色攻略
- 招商银行昆明市官渡区2025秋招半结构化面试15问及话术
- 招商银行无锡市梁溪区2025秋招笔试价值观测评题专练及答案
- 中信银行汕头市龙湖区2025秋招笔试性格测试题专练及答案
- 光大银行潍坊市诸城市2025秋招群面案例总结模板
- 兴业银行北京市大兴区2025秋招笔试英文行测高频题含答案
- 兴业银行惠州市惠阳区2025秋招英文面试题库及高分回答
- 光大银行上海市虹口区2025秋招群面模拟题及高分话术
- 广发银行常德市武陵区2025秋招笔试英文行测高频题含答案
- 2024年无锡工艺职业技术学院公开招聘辅导员笔试题含答案
- 高压氧治疗脑卒中
- 2025年三峡银行考试真题及答案
- 2025年度哈尔滨市平房区纪委监委公开招聘雇员2人考试参考题库及答案解析
- 10KV变电送受电安全作业方案
- 2025年江西省高考化学试卷真题(含答案)
- 海上作业安全培训教学课件
- 2025年ARVR行业研究报告及未来行业发展趋势预测
- 【初中数学】单项式与单项式相乘(课件)+华东师大版(2024)数学八年级上册
- 情绪管理课2025年职场压力释放与心灵成长分析报告
- 交管12123驾驶证学法减分考试题库和答案
评论
0/150
提交评论