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

上传人:ph****6 文档编号:71267938 上传时间:2022-04-06 格式:DOC 页数:13 大小:38.50KB
返回 下载 相关 举报
Unity3D教程:保存或读取数据组的方法_第1页
第1页 / 共13页
Unity3D教程:保存或读取数据组的方法_第2页
第2页 / 共13页
Unity3D教程:保存或读取数据组的方法_第3页
第3页 / 共13页
点击查看更多>>
资源描述
-Unity3D教程:保存或读取数据组的方法Posted on 2013年02月05日 by U3d / Unity3D 根底教程/被围观 195 次Unity本身有PlayerPrefs来做一些数据的保存和读取,也可以通过循环来做批量的读取或者保存,下面这个脚本可以方便的调用用来做上面批量的工作,比方读取一组文本数组数据和保存一组文本数组数据。Unity3D教程:Unity3D实用小功能建议把这个脚本放在Standard Assets目录下,这样可以按照下面的方法方便的调用它.现在包含了下面这些命令:PlayerPrefs*.SetVector3PlayerPrefs*.GetVector3PlayerPrefs*.SetIntArrayPlayerPrefs*.GetIntArrayPlayerPrefs*.SetFloatArrayPlayerPrefs*.GetFloatArrayPlayerPrefs*.SetStringArrayPlayerPrefs*.GetStringArray保存一个向量:static function SetVector3 (key : string, value : Vector3) : boolean/尝试保存一个物体位置var player : GameObject;if (!PlayerPrefs*.SetVector3(PlayerPosition, player.transform.position)print(不能保存物体位置!);成功返回真,否则假(例如用Webplayer保存超过1M数据的时候)。获得一个向量:var player : GameObject;player.transform.position = PlayerPrefs*.GetVector3(PlayerPosition);如果读取的向量存在的话将会返回这个向量值。保存一组整型数据:/当保存Scores命名的分数时候创立一个10成员数组var myScores = new int10;for (i = 0; i myScores.Length; i+)myScores = i+1;if (!PlayerPrefs*.SetIntArray(Scores, myScores)print(不能保存分数!);获得一组整型数据:static function GetIntArray (key : string) : int如果存在将返回这组数据,否则将返回int0;var scores = PlayerPrefs*.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: .unifymunity./wiki/inde*.phptitle=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.*, 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.Te*t.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.Te*t.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 PlayerPrefs*#region Vector 3/ / Stores a Vector3 value into a Key/ public static bool SetVector3(string key, Vector3 vector)return SetFloatArray(key, new float3 vector.*, 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.Te*t.StringBuilder sb = new System.Te*t.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 (E*ception 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.Te*t.StringBuilder sb = new System.Te*t.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 (E*ception 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.Te*t.StringBuilder sb = new System.Te*t.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 (E*ception 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 (E*ception 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(key, n0, stringArray)return false;return true;/ / Returns a String Array from a key & char seperator/ public static string GetStringArray(string key, char separator)if (PlayerPrefs.HasKey(key)return PlayerPrefs.GetString(key).Split(separator);return new string0;/ / Returns a Bool Array from a key/ public static string GetStringArray(string key)if (PlayerPrefs.HasKey(key)return PlayerPrefs.GetString(key).Split(n0);return new string0;/ / Returns a String Array from a key & char seperator/ Note: Uses default values to initialize if no key was found/ public static string GetStringArray(string key, char separator, string defaultValue, int defaultSize)if (PlayerPrefs.HasKey(key)return PlayerPrefs.GetString(key).Split(separator);string stringArray = new stringdefaultSize;for (int i = 0; i defaultSize; i+)stringArrayi = defaultValue;return stringArray;/ / Returns a String Array from a key/ Note: Uses default values to initialize if no key was found/ public static String GetStringArray(string key, string defaultValue, int defaultSize)return GetStringArray(key, n0, defaultValue, defaultSize);#endregion. z.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!