zoukankan      html  css  js  c++  java
  • Unity—游戏存档 PlayerPrefs类的用法

    转载自CNBlogs乔高建

    unity3d提供了一个用于本地持久化保存与读取的类——PlayerPrefs。工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。
        PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型。
        分别对应的函数为:
        SetInt();保存整型数据;
        GetInt();读取整形数据;
        SetFloat();保存浮点型数据;
        GetFlost();读取浮点型数据;
        SetString();保存字符串型数据;
        GetString();读取字符串型数据;
    这些函数的用法基本一致使用Set进行保存,使用Get进行读取。下面根据一个例子来详细说明一下用法:
       首先打开unity3D,新建一个工程文件,然后在项目视图里面新建一个c#文件,命名为_Playerprefs  
       并输入一下代码:

    public class _Playerprefs : MonoBehaviour {
     2          public string set_NAME;
     3          public string get_NAME;
     4          void OnGUI()
     5          {
     6                  GUILayout.BeginHorizontal("box");
     7                  GUILayout.Label("姓名:");
     8                  set_NAME=GUILayout.TextArea(set_NAME, 200,GUILayout.Width(50));
     9                  if(GUILayout.Button("存储数据"))
    10                  {
    11 
    12                         //将我们输入的姓名保存到本地,命名为_NAME ;
    13                         PlayerPrefs.SetString("_NAME", set_NAME);
    14                  }
    15                  GUILayout.EndHorizontal();
    16                  GUILayout.BeginHorizontal("box");
    17                  if(GUILayout.Button("读取数据"))
    18                  {
    19 
    20                          //读取本地数据中名称为_NAME 的数据;
    21                         get_NAME=PlayerPrefs.GetString("_NAME");
    22                  }
    23                  GUILayout.Label("你输入的姓名:"+get_NAME);
    24                  GUILayout.EndHorizontal();
    25                  
    26 
    27          }
    28  }

    分析一下这段代码,我们在输入框中输入一个名称,然后点击存储数据按钮,将数据存储到本地并且命名为_NAME ,然后点击读取数据按钮,从本地数据中找到名称为_NAME  的数据,并存放到我们定义好的变量get_NAME 中,然后用Label显示出来
    运行结果如下:

     PlayerPrefs.SetString("_NAME", set_NAME); 这个方法中第一个参数表示存储数据的名称,第二的参数表示具体存储的数值。 get_NAME=PlayerPrefs.GetString("_NAME"); 这个方法中第一个数据表示读取数据的名称,本来还有第二的参数,表示默认值,如果通过数据名称没有找到对应的值,那么就返回默认值,这个值也可以写,则返回空值。 下面我们将这个简单的工程发布成EXE格式,打开我们发布好的EXE文件,在输入框里面输入张三。 如图:

    QQ截图20140116160855.png

    点击存储数据按钮,将数据存储到本地,然后关闭exe文件, 然后再打开,打开后点击读取数据:得到的结果如图:

    数据被我们从本地文件中读取出来了,完成了一次简单的存档操作。 在PlayerPrefs 类中还提供了PlayerPrefs.DeleteKey (key : string)删除指定数据;PlayerPrefs.DeleteAll() 删除全部键 ;PlayerPrefs.HasKey (key : string)判断数据是否存在的方法;

    余生很长,愿我们都活成自己喜欢的样子
  • 相关阅读:
    第九十一天 how can I 坚持 技术-永远的技术
    第九十天 how can I 坚持
    Java控制台中输入中文输出乱码的解决办法
    【体系结构】转移预测器设计与比较1
    Ubuntu 13.04 用Sublime Text 2 编译运行 JAVA
    HDU 4605 Magic Ball Game (在线主席树|| 离线 线段树)
    个人重构机房收费系统之报表
    快速排序的递归和非递归实现
    HDU 3721 Building Roads (2010 Asia Tianjin Regional Contest)
    体验决定深度,知识决定广度。你的人生是什么呢? 操蛋和扯蛋没必要纠结 唯有继续
  • 原文地址:https://www.cnblogs.com/bananana/p/8931286.html
Copyright © 2011-2022 走看看