zoukankan      html  css  js  c++  java
  • Unity 数据存储

    Unity中的数据存储

      数据的本地持久化保存方式:

      A. PlayerPrefs:Unity 特有的存储方式,用于游戏简单的基本数据存储。

      B. XML:跨平台公认标准,兼容性好。

      C. JSON:轻量级数据模式,跟 XML 一样具有跨平台特性,同时语法更加简洁。

      D. 数据库:主流的数据库都支持,例如 MySQLSQLiteOracle 等。

      接下来我们主要说是第一种数据存储方式:PlayerPrefs ,主要用于简单的单机应用。

    PlayerPrefs

      在 Unity 里面,提供了一个用于本地持久化保存与读取的类 —— PlayerPrefs

      工作原理非常简单,以键值对的形式将数据保存在本地文件中,然后程序可以根据这个名称取出上次保存的数值。

      PlayerPrefs 类支持三种数据类型的保存和读取:浮点型、整型和字符串型。

      分别对应的函数为:

      SetInt():保存整型数据;

      GetInt():读取整形数据;

      SetFloat():保存浮点型数据;

      GetFlost():读取浮点型数据;

      SetString():保存字符串型数据;

      GetString():读取字符串型数据;

      这些函数的用法基本一致使用 Set 进行保存,使用 Get 进行读取。在 PlayerPrefs 类中还提供了

      PlayerPrefs.DeleteKey (key : string):删除指定数据;

      PlayerPrefs.DeleteAll():删除全部键 ;

      PlayerPrefs.HasKey (key : string):判断数据是否存在;

    举个例子

      创建测试脚本,挂载到 Mian Camera(主相机)上:

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

      运行结果:

    PlayerPrefs 数据存储在哪里

      * 在 Mac OS X 平台下,存储在 ~/Library/Preferences 文件夹,名为 unity.[company name].[product name].plist

      * 在 Windows 平台下,存储在注册表的 HKEY_CURRENT_USERSoftware[company name][product name] 键下。

    注意事项

      * 数据以键值对的形式存储,可以看做一个字典。

      * 数据通过键名来读取,当值不存在时,返回默认值。

  • 相关阅读:
    汽车加油问题--贪心算法
    区间相交问题---贪心算法
    算法-动态规划-数字三角问题
    jar转成exe
    kafka zookeeper学习(2) 测试kafka与zookeeper环境
    kafka zookeeper学习(1) windows搭建kafka与zookeeper环境
    java调用linux系统命令
    linux hg(mercurial)入门
    redis集群构建过程 linux windows
    Java JTextArea不能实时刷新的问题
  • 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/13048581.html
Copyright © 2011-2022 走看看