关于Unity中的本地存储

Posted 杭者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Unity中的本地存储相关的知识,希望对你有一定的参考价值。

本地存储

在做游戏的时候,经常需要在本机存储一些数据,比如闯关类游戏要记录闯到第几关,做单机的时候要把数据保存到本地,下次启动的时候数据存在,就是把数据保存到磁盘里面或者手机的flash闪存里面。

Unity使用PlayerPrefs类实现本地存储

1: PlayerPrefs类: 游戏开发中需要存储本地数据,借助这个能够实现本地存储;
2: PlayerPrefs主要方法:
(1) SetInt/SetFloat, SetString: key-->value  存整数/存浮点/存字符串
(2) GetInt/GetFloat, GetString: key-->value; 取整数/取浮点/取字符串
(3)DeleteKey/DeleteAll 删除一个key/所有数据;
(4) HasKey 判断一个Key是否存在;
(5) Save 保存数据;

 

 

本地存储实例

1.创建Unity工程目录

2.创建一个立方体Cube

3.创建一个脚本local_storage挂载到Cube节点下

4.打开local_storage

using UnityEngine;
using System.Collections;

public class local_storage : MonoBehaviour {

    // Use this for initialization
    void Start () {
        //设定数据----不是代码
        // name: 小红 // 字符串
        // age: 12 // 整数 
        // sex: 1 // 性别
        // hight: 1.62 // float

        //存数据
        /*PlayerPrefs.SetString("name", "小红");
        PlayerPrefs.SetInt("age", 12);
        PlayerPrefs.SetInt("sex", 1);
        PlayerPrefs.SetFloat("hight", 1.62f);
        PlayerPrefs.Save();*/

        //取数据
        // Debug.Log(PlayerPrefs.GetString("name"));
        // Debug.Log(PlayerPrefs.GetInt("age"));
        // Debug.Log(PlayerPrefs.GetInt("sex"));
        // Debug.Log(PlayerPrefs.GetFloat("hight"));

        //查找删除
        if (PlayerPrefs.HasKey("name")) {
            Debug.Log("Haskey");//第一次输出这个
            PlayerPrefs.DeleteKey("name");
        }
        else {
            Debug.Log("ELSE NOT FOUND");//第二次输出这个(被第一次删除了,找不到了)
        }
    }
    
    // Update is called once per frame
    void Update () {
    
    }
}

 

以上是关于关于Unity中的本地存储的主要内容,如果未能解决你的问题,请参考以下文章

如何将本地存储中的 JSON 对象添加到 Android Studio 上的片段列表

关于Unity3d的世界空间和本地空间的一点思考

unity3d编辑器怎么清除本地存储呀?

在 Unity 中,关于 sprite sheet 切片的数据存储在哪些文件中?

unity---PlayerPrefs本地存储

Unity存储数据的各种路径