Unity3D教程:保存或读取数据组的方法.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Unity3D 教程 保存 读取 数据 方法
- 资源描述:
-
Unity3D教程:保存或读取数据组的方法 Posted on 2013年02月05日 by U3d / Unity3D 基础教程/被围观 195 次 Unity本身有PlayerPrefs来做一些数据的保存和读取,也可以通过循环来做批量的读取或者保存,下面这个脚本可以方便的调用用来做上面批量的工作,比如读取一组文本数组数据和保存一组文本数组数据。Unity3D教程:Unity3D实用小功能 建议把这个脚本放在Standard Assets目录下,这样可以按照下面的方法方便的调用它.现在包含了下面这些命令: PlayerPrefsX.SetVector3 PlayerPrefsX.GetVector3 PlayerPrefsX.SetIntArray PlayerPrefsX.GetIntArray PlayerPrefsX.SetFloatArray PlayerPrefsX.GetFloatArray PlayerPrefsX.SetStringArray PlayerPrefsX.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 int[10]; for (i = 0; i < myScores.Length; i++) myScores = i+1; if (!PlayerPrefsX.SetIntArray("Scores", myScores)) print("不能保存分数!"); 获得一组整型数据: static function GetIntArray (key : string) : int[] 如果存在将返回这组数据,否则将返回int[0]; var scores = PlayerPrefsX.GetIntArray("Scores"); static function GetIntArray (key : string, defaultValue : int, defaultSize : int) : int[] 如果不存在这组数据,将返回指定长度的数组以及每个成员都会赋予默认值. 其他函数的使用方法: static function SetFloatArray (key : string, value : float[]) : boolean static function GetFloatArray (key : string) : float[] static function GetFloatArray (key : string, defaultValue : float, defaultSize : int) : float[] static function SetStringArray (key : string, value : String[]) : boolean static function SetStringArray (key : string, value : String[], separator : char) : boolean static function GetStringArray (key : string) : string[] static function GetStringArray (key : string, separator : char) : string[] static function GetStringArray (key : string, defaultValue : String, defaultSize : int) : string[] static function GetStringArray (key : string, separator : char, defaultValue : String, defaultSize : int) : string[] 该脚本的Javascript版: // Site of this script: <a href=" target="_blank" rel="external"> // 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(floatArray[0], floatArray[1], floatArray[2]); } 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(intArray[i]).Append("|"); } sb.Append(intArray[i]); 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 int[stringArray.Length]; for (i = 0; i < stringArray.Length; i++) { intArray[i] = parseInt(stringArray[i]); } return intArray; } return new int[0]; } static function GetIntArray (key : String, defaultValue : int, defaultSize : int) : int[] { if (PlayerPrefs.HasKey(key)) { return GetIntArray(key); } var intArray = new int[defaultSize]; for (i = 0; i < defaultSize; i++) { intArray[i] = 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(floatArray[i]).Append("|"); } sb.Append(floatArray[i]); 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 float[stringArray.Length]; for (i = 0; i < stringArray.Length; i++) { floatArray[i] = parseFloat(stringArray[i]); } return floatArray; } return new float[0]; } static function GetFloatArray (key : String, defaultValue : float, defaultSize : int) : float[] { if (PlayerPrefs.HasKey(key)) { return GetFloatArray(key); } var floatArray = new float[defaultSize]; for (i = 0; i < defaultSize; i++) { floatArray[i] = 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, "\n"[0])) { return false; } return true; } static function GetStringArray (key : String, separator : char) : String[] { if (PlayerPrefs.HasKey(key)) { return PlayerPrefs.GetString(key).Split(separator); } return new String[0]; } static function GetStringArray (key : String) : String[] { if (PlayerPrefs.HasKey(key)) { return PlayerPrefs.GetString(key).Split("\n"[0]); } return new String[0]; } 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 String[defaultSize]; for (i = 0; i < defaultSize; i++) { stringArray[i] = defaultValue; } return stringArray; } static function GetStringArray (key : String, defaultValue : String, defaultSize : int) : String[] { return GetStringArray(key, "\n"[0], 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: Bren using UnityEngine; using System; public static class PlayerPrefsX { #region Vector 3 /// <summary> /// Stores a Vector3 value into a Key /// </summary> public static bool SetVector3(string key, Vector3 vector) { return SetFloatArray(key, new float[3] { vector.x, vector.y, vector.z }); } /// <summary> /// Finds a Vector3 value from a Key /// </summary> public static Vector3 GetVector3(string key) { float[] floatArray = GetFloatArray(key); if (floatArray.Length < 3) return Vector3.zero; return new Vector3(floatArray[0], floatArray[1], floatArray[2]); } #endregion #region Bool Array /// <summary> /// Stores a Bool Array or Multiple Parameters into a Key /// </summary> 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(boolArray[i]).Append("|"); sb.Append(boolArray[boolArray.Length - 1]); try { PlayerPrefs.SetString(key, sb.ToString()); } catch (Exception e) { return false; } return true; } /// <summary> /// Returns a Bool Array from a Key /// </summary> public static bool[] GetBoolArray(string key) { if (PlayerPrefs.HasKey(key)) { string[] stringArray = PlayerPrefs.GetString(key).Split("|"[0]); bool[] boolArray = new bool[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) boolArray[i] = Convert.ToBoolean(stringArray[i]); return boolArray; } return new bool[0]; } /// <summary> /// Returns a Bool Array from a Key /// Note: Uses default values to initialize if no key was found /// </summary> public static bool[] GetBoolArray(string key, bool defaultValue, int defaultSize) { if (PlayerPrefs.HasKey(key)) return GetBoolArray(key); bool[] boolArray = new bool[defaultSize]; for (int i = 0; i < defaultSize; i++) boolArray[i] = defaultValue; return boolArray; } #endregion #region Int Array /// <summary> /// Stores a Int Array or Multiple Parameters into a Key /// </summary> 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(intArray[i]).Append("|"); sb.Append(intArray[intArray.Length - 1]); try { PlayerPrefs.SetString(key, sb.ToString()); } catch (Exception e) { return false; } return true; } /// <summary> /// Returns a Int Array from a Key /// </summary> public static int[] GetIntArray(string key) { if (PlayerPrefs.HasKey(key)) { string[] stringArray = PlayerPrefs.GetString(key).Split("|"[0]); int[] intArray = new int[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) intArray[i] = Convert.ToInt32(stringArray[i]); return intArray; } return new int[0]; } /// <summary> /// Returns a Int Array from a Key /// Note: Uses default values to initialize if no key was found /// </summary> public static int[] GetIntArray(string key, int defaultValue, int defaultSize) { if (PlayerPrefs.HasKey(key)) return GetIntArray(key); int[] intArray = new int[defaultSize]; for (int i = 0; i < defaultSize; i++) intArray[i] = defaultValue; return intArray; } #endregion #region Float Array /// <summary> /// Stores a Float Array or Multiple Parameters into a Key /// </summary> 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(floatArray[i]).Append("|"); sb.Append(floatArray[floatArray.Length - 1]); try { PlayerPrefs.SetString(key, sb.ToString()); } catch (Exception e) { return false; } return true; } /// <summary> /// Returns a Float Array from a Key /// </summary> public static float[] GetFloatArray(string key) { if (PlayerPrefs.HasKey(key)) { string[] stringArray = PlayerPrefs.GetString(key).Split("|"[0]); float[] floatArray = new float[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) floatArray[i] = Convert.ToSingle(stringArray[i]); return floatArray; } return new float[0]; } /// <summary> /// Returns a String Array from a Key /// Note: Uses default values to initialize if no key was found /// </summary> public static float[] GetFloatArray(string key, float defaultValue, int defaultSize) { if (PlayerPrefs.HasKey(key)) return GetFloatArray(key); float[] floatArray = new float[defaultSize]; for (int i = 0; i < defaultSize; i++) floatArray[i] = defaultValue; return floatArray; } #endregion #region String Array /// <summary> /// Stores a String Array or Multiple Parameters into a Key w/ specific char seperator /// </summary> 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; } /// <summary> /// Stores a Bool Array or Multiple Parameters into a Key /// </summary> public static bool SetStringArray(string key, params string[] stringArray) { if (!SetStringArray(key, "\n"[0], stringArray)) return false; return true; } /// <summary> /// Returns a String Array from a key & char seperator /// </summary> public static string[] GetStringArray(string key, char separator) { if (PlayerPrefs.HasKey(key)) return PlayerPrefs.GetString(key).Split(separator); return new string[0]; } /// <summary> /// Returns a Bool Array from a key /// </summary> public static string[] GetStringArray(string key) { if (PlayerPrefs.HasKey(key)) return PlayerPrefs.GetString(key).Split("\n"[0]); return new string[0]; } /// <summary> /// Returns a String Array from a key & char seperator /// Note: Uses default values to initialize if no key was found /// </summary> 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 string[defaultSize]; for (int i = 0; i < defaultSize; i++) stringArray[i] = defaultValue; return stringArray; } /// <summary> /// Returns a String Array from a key /// Note: Uses default values to initialize if no key was found /// </summary> public static String[] GetStringArray(string key, string defaultValue, int defaultSize) { return GetStringArray(key, "\n"[0], defaultValue, defaultSize); } #endregion }展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




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



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/3112494.html