Unity Easy Save数据保存插件将数据保存到Android手机根目录

Unity Easy Save数据保存插件将数据保存到Android手机根目录

    • 原由
    • 导入插件
    • 设置保存路径
    • 测试脚本
    • 界面
    • 测试验证
    • 问题

原由

开发时碰到一个需求,两个手机APP,一个保存数据,一个读取数据。用Unity自带的PlayerPrefs不能满足需求,PlayerPrefs只能将数据保存在Android/data/包名下面,所以两个APP保存的数据不能进行互通,想要互通的话就要保存到手机的根目录下。

导入插件

将Easy Save插件导入Unity工程中,然后我们使用Easy Save 3版本进行操作,这里使用的Unity版本是Unity2019

设置保存路径

点击Window,选择Easy Save 3,会打开Easy Save 3的配置框,设置DirectoryData Path,设置Default File Path为手机的根目录下的文件,这里设置的是 /storage/emulated/0/Test/Save.es ,其中 /storage/emulated/0 表示根目录, /Test/Save.es 是我新建的文件夹和存储文件。
Directory也可以设置为Persistent Data Path
Unity Easy Save数据保存插件将数据保存到Android手机根目录_第1张图片

测试脚本

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.Android;
using UnityEngine.UI;

public class Test2 : MonoBehaviour
{
    public Text show;
    public Button save;
    public Button read;


    void Start()
    {
        save.onClick.AddListener(() =>
       {
           SaveData();
       });

        read.onClick.AddListener(() =>
        {
            ReadData();
        });
    }

    public void ReadData()
    {
        try
        {
            string s = ES3.Load<string>("b");
            int x = ES3.Load<int>("a");

            show.text = s + "==" + x;
        }
        catch (Exception e)
        {
            show.text = e.Message;
        }

    }

    public void SaveData()
    {
        try
        {
            ES3.Save<int>("a", 11);
            ES3.Save<string>("b", "show");
        }
        catch (Exception e)
        { 
            show.text = e.Message;
        }
    }
}

这里我没有写验证文件夹是否存在的代码,是因为设置完路径,EaseSave会自动生成文件夹

界面

Unity Easy Save数据保存插件将数据保存到Android手机根目录_第2张图片
界面很简单,只有一个文本显示框和两个按钮

测试验证

打包的时候打两个包,两个包的包名不一样,安装到手机上,只在一个APP上点击保存按钮,两个APP上点击读取按钮都可以读到数据。

问题

测试中可能会出现找不到Save.es3文件的情况,这是因为APP没有设置相关的权限,请参考下面网址
https://blog.csdn.net/qq_33547099/article/details/110631476
https://blog.csdn.net/f_957995490/article/details/108102165

你可能感兴趣的:(Unity,android,unity)