无法将数据保存到文件,然后将其加载到Unity3d中

迪玛·科齐尔(Dima Kozyr)

我想在启动游戏后将游戏的数据保存到文件中,然后在关闭/启动游戏后再次从该文件中加载数据。我尝试使用解决方案,但是当我开始然后停止仿真时,我看不到file indicatorsInfo.dat,但是Debug.Log()说它存在。无论如何,它不会加载数据,这是怎么回事?

在此处输入图片说明

    using UnityEngine;
    using System;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.IO;

    public class GAMEMANAGERFileIO : MonoBehaviour
    {
        void OnEnable()
        {        
            LoadFromFile();
            SaveToFile();
        }

        void OnDisable()
        {        
            SaveToFile();
        }

        public void SaveToFile()
        {
            GameObject gameManagerObject = GameObject.FindGameObjectWithTag("GAMEMANAGER");
            GAMEMANAGER gameManager = gameManagerObject.GetComponent<GAMEMANAGER>();            

            BinaryFormatter binaryFormatter = new BinaryFormatter();
            FileStream fileStream = File.Create(Application.persistentDataPath + "/indicatorsInfo.dat"); // open file
            IndicatorsInfo indicatorsInfo = new IndicatorsInfo();

            // Initialise data of the class IndicatorsInfo
            //...

            // save data to the file. Serialize([to where we want to save], [what we want to save])
            binaryFormatter.Serialize(fileStream, indicatorsInfo);

========== EDIT 1 ======================================================
        File.WriteAllText("C:/Users/dima/Desktop/exampleSaveData.txt",
            indicatorsInfo.walkSpeedTemfFile.ToString() + ", " +
            indicatorsInfo.runSpeedTemfFile + ", " +
            indicatorsInfo.jumpForceTemfFile + ", " +
            indicatorsInfo.enduranceTemfFile);
========================================================================

            fileStream.Close();
            Debug.Log("saved"); // this works
        }

        public void LoadFromFile()
        {
            // check if file exisits before we will try to open it
            if(File.Exists(Application.persistentDataPath + "/indicatorsInfo.dat"))
            {
                GameObject gameManagerObject = GameObject.FindGameObjectWithTag("GAMEMANAGER");
                GAMEMANAGER gameManager = gameManagerObject.GetComponent<GAMEMANAGER>();

                BinaryFormatter binaryFormatter = new BinaryFormatter();
                FileStream fileStream = File.Open(Application.persistentDataPath + "/indicatorsInfo.dat", FileMode.Open); // open file
                IndicatorsInfo indicatorsInfo = (IndicatorsInfo)binaryFormatter.Deserialize(fileStream); // read from file
                fileStream.Close(); // close file

                // Initialise local data with values from the class IndicatorsInfo
                //...

========== EDIT 1 ======================================================
            File.ReadAllText("C:/Users/dima/Desktop/exampleSaveData.txt");
========================================================================
            }
        }
    }

    // clear class with data, which we will store to file
    [Serializable]
    class IndicatorsInfo
    {
        //...
    }

编辑1

我添加了File.WriteAllText()File.ReadAllText()但是我有两个问题:

  1. 我需要先创建一个txt文件,然后才能保存到该文件。
  2. 我可以将数据保存到文件(4个变量的值),但是无法加载。

在此处输入图片说明

胖子

在Unity中读写文件非常容易。

// IO crib sheet..
// filePath = Application.persistentDataPath+"/"+fileName;
// check if file exists System.IO.File.Exists(f)
// write to file File.WriteAllText(f,t)
// delete the file if needed File.Delete(f)
// read from a file File.ReadAllText(f)

这里的所有都是它的。

string currentText = File.ReadAllText(filePath);

请注意...........

// filePath = Application.persistentDataPath+"/"+fileName;
// YOU MUST USE "Application.persistentDataPath"
// YOU CANNOT USE ANYTHING ELSE
// NOTHING OTHER THAN "Application.persistentDataPath" WORKS
// ALL OTHER OPTIONS FAIL ON ALL PLATFORMS
// YOU CAN >ONLY< USE Application.persistentDataPath IN UNITY

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将文件加载到使用Webplayer嵌入的unity3d应用程序中

来自分类Dev

Unity3D将字符串数据保存到ICloud

来自分类Dev

如何将Unity3d Mesh保存到文件?

来自分类Dev

游戏关闭后无法保存数据以加载它(Unity3d)

来自分类Dev

从.json文件中获取特定数据,然后将其保存到python中的2D矩阵/字典中

来自分类Dev

将哈希表中的XML转换为表对象,然后将其加载到数据集中

来自分类Dev

读取文件并将其保存到对象中。Shiny R中的[不显示加载的数据]

来自分类Dev

将JSON数据加载到D3中的数组

来自分类Dev

Unity3D中的AudioSource无法播放WAV文件

来自分类Dev

在Swift 3中将数据保存到.plist文件

来自分类Dev

将某些文件加载到list.files()中并将其存储在数据框中

来自分类Dev

从文件将数据加载到表中

来自分类Dev

无法同时读取多个rds文件并将其保存到单个数据帧中

来自分类Dev

将数据保存到Qt中的文件

来自分类Dev

将数据从 UDP 保存到文件中

来自分类Dev

使用串行端口读取实时数据,在图表上进行绘图,然后将其保存到Excel文件中

来自分类Dev

将数据保存到数据存储中,然后保存到表vba中

来自分类Dev

C-将指针数据保存/加载到文件

来自分类Dev

C#-将数据保存并加载到文件

来自分类Dev

使用 Django 将 html5 画布加载到 PIL 图像中并将其保存在新文件中

来自分类Dev

无法将预处理数据作为csv保存到s3存储桶中的文件夹

来自分类Dev

无法使用pymysql将数据文件加载到MySQL中-找不到文件

来自分类Dev

如何将复杂的python数据结构保存并加载到文件中?

来自分类Dev

将3.7GB的大json文件加载到数据帧中,然后使用ijson转换为CSV文件

来自分类Dev

循环遍历目录中的文件-将其名称保存到文件中,然后更改名称

来自分类Dev

将图像路径从画廊保存到Room DB,然后在Picasso无法加载的情况下加载

来自分类Dev

如何读取以空格分隔的数据并将其保存到数组,然后以其他顺序将其写入c ++中的新文本文件中

来自分类Dev

循环执行excel文件,然后将其保存到新文件夹python pandas中

来自分类Dev

循环执行excel文件,然后将其保存到新文件夹python pandas中

Related 相关文章

  1. 1

    将文件加载到使用Webplayer嵌入的unity3d应用程序中

  2. 2

    Unity3D将字符串数据保存到ICloud

  3. 3

    如何将Unity3d Mesh保存到文件?

  4. 4

    游戏关闭后无法保存数据以加载它(Unity3d)

  5. 5

    从.json文件中获取特定数据,然后将其保存到python中的2D矩阵/字典中

  6. 6

    将哈希表中的XML转换为表对象,然后将其加载到数据集中

  7. 7

    读取文件并将其保存到对象中。Shiny R中的[不显示加载的数据]

  8. 8

    将JSON数据加载到D3中的数组

  9. 9

    Unity3D中的AudioSource无法播放WAV文件

  10. 10

    在Swift 3中将数据保存到.plist文件

  11. 11

    将某些文件加载到list.files()中并将其存储在数据框中

  12. 12

    从文件将数据加载到表中

  13. 13

    无法同时读取多个rds文件并将其保存到单个数据帧中

  14. 14

    将数据保存到Qt中的文件

  15. 15

    将数据从 UDP 保存到文件中

  16. 16

    使用串行端口读取实时数据,在图表上进行绘图,然后将其保存到Excel文件中

  17. 17

    将数据保存到数据存储中,然后保存到表vba中

  18. 18

    C-将指针数据保存/加载到文件

  19. 19

    C#-将数据保存并加载到文件

  20. 20

    使用 Django 将 html5 画布加载到 PIL 图像中并将其保存在新文件中

  21. 21

    无法将预处理数据作为csv保存到s3存储桶中的文件夹

  22. 22

    无法使用pymysql将数据文件加载到MySQL中-找不到文件

  23. 23

    如何将复杂的python数据结构保存并加载到文件中?

  24. 24

    将3.7GB的大json文件加载到数据帧中,然后使用ijson转换为CSV文件

  25. 25

    循环遍历目录中的文件-将其名称保存到文件中,然后更改名称

  26. 26

    将图像路径从画廊保存到Room DB,然后在Picasso无法加载的情况下加载

  27. 27

    如何读取以空格分隔的数据并将其保存到数组,然后以其他顺序将其写入c ++中的新文本文件中

  28. 28

    循环执行excel文件,然后将其保存到新文件夹python pandas中

  29. 29

    循环执行excel文件,然后将其保存到新文件夹python pandas中

热门标签

归档