(转)PlayerPrefs游戏存档

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

//将我们输入的姓名保存到本地,命名为_NAME ;
                        PlayerPrefs.SetString("_NAME", set_NAME);
                }
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal("box");
                if(GUILayout.Button("读取数据"))
                {

//读取本地数据中名称为_NAME 的数据;
                        get_NAME=PlayerPrefs.GetString("_NAME");
                }
                GUILayout.Label("你输入的姓名:"+get_NAME);
                GUILayout.EndHorizontal();

}
}

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

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

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

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

时间: 2024-11-05 11:55:42

(转)PlayerPrefs游戏存档的相关文章

PlayerPrefs游戏存档

本地存储.相当于Flash里面的SharedObject. Android位置:机器自身存储的(非扩展卡)/data/data/appname/shared_prefs/{AppName}.xml,如果想查看需要Root. IOS位置:暂时还没找到. 其他位置:参考 https://docs.unity3d.com/Documentation/ScriptReference/PlayerPrefs.html PlayerPrefs游戏存档,码迷,mamicode.com

PlayerPrefs 游戏存档

游戏存档,持久化储存,玩家游戏记录以数据形式存在PlayerPrefs中的. 原理: 在Mac OS X上PlayerPrefs存储在-/Library/PlayerPrefs文件夹,名为unity.[company name].[product name].plist,这里company和product名是在Project Setting中设置的,相同的plist用于在编辑器中运行的工程和独立模式 在Windows独立模式下,PlayerPrefs被存储在注册表的 HKCU\Software\

【重要】U3D存放本地游戏存档——不同平台载入XML文件的方法——IOS MAC Android

在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不支持如下方法载入XML文件: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("Assets/Resources/text.xml"); IOS上载入XML的正确方法有2种: (1)方法一 TextAsset textAsset = (TextAsset)Resources.Load(filename, typeof(TextAsset)); XmlDocument

Cocos2d-x 游戏存档

游戏存档功能可以保存游戏中数据,让玩家游戏可以延续, 单机游戏更为重要.而CCUserDefault可以作轻量级数据库使用,用来存储数据,支持数据类型bool,int, float, double, string. 存储数据 CCUserDefault::sharedUserDefault()->setStringForKey("string", "value1"); //参数顺序:键,对应的值 CCUserDefault::sharedUserDefault

【转】Unity 游戏存档 PlayerPrefs类的用法

http://www.cnblogs.com/qiaogaojian/p/5969855.html unity3d提供了一个用于本地持久化保存与读取的类--PlayerPrefs.工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值.    PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型.    分别对应的函数为:    SetInt();保存整型数据:    GetInt();读取整形数据:    SetFloat();

【Unity3D】Unity3D之 注册表动态存取游戏存档——PlayerPrefs类

1.Unity3D提供了一个用于本地持久化保存与读取的类--PlayerPrefs.工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值. 2.PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型.    分别对应的函数为:    SetInt();保存整型数据:    GetInt();读取整形数据: SetFloat();保存浮点型数据:    GetFlost();读取浮点型数据: SetString();保存字符串型数据

steam游戏存档迁移

之前玩的盗版guacamelee等着打折入正,今天入了,不想重新打了,就把存档从盗版迁移了一下. 盗版的目录是F:\Guacamelee\Profile\ALI213\Saves,该目录下又一个SAVE.DAT是储存游戏数据的文件. steam正版的游戏数据在steam的安装目录(注意不是游戏库)下的userdata下,古国userdata下又多个数字,那么找最近保存的(最好找个游戏先进去玩一下),进入userdata下的你自己账号的目录后,把目录按时间排序(玩正版的guacamelee到存档后

Ozon Tech Challenge 2020 游戏存档

(cf 即某大型线上游戏 (指比赛经历 0:02 A 是个送分题,秒了 0:04 B 不是挺傻的吗,我怎么 RE 了啊 0:12 我怎么调用错数组了啊,终于过了 0:15 C 是个送分题,wa*1 0:16 我怎么又不开 long long 啊 /dk 0:20 这 D 好难啊,自闭了 0:30 原来我知道树长什么样子的啊,那不是很 naive 0:36 T 了一发就过了 0:54 这 E 怎么这么简单啊,一下就过了. 回去看了一下榜,发现排名还挺靠前,感觉很有希望. 与此同时 Alan_zho

Unity游戏开发学习之路——数据持久化

数据持久化 谈到数据持久化,在Unity的游戏开发中十分重要的,不管是是在本地和服务器端,数据持久化都是我们学习的难点,数据持久化的技术有很多种,这里只选取几种,目前也是我所学到的,在接下来的时间里会陆续整理到这里. Part1:PlayerPrefs类 这是unity圣典中给出的, PlayerPrefs 游戏存档 Description 描述 在游戏会话中储存和访问游戏存档.这个是持久化数据储存,比如保存游戏记录. Editor/Standalone 编辑器 / 桌面平台 Mac OS 在M