【问题标题】:Save and Load Data - Unity3D保存和加载数据 - Unity3D
【发布时间】:2016-03-22 01:15:08
【问题描述】:

我已经编写了这段代码,并尝试将数据保存并加载到 Unity 中。这是我的代码:

using UnityEngine;
using System.Collections;
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using System.Collections.Generic;
using System.Linq;

public class GameControl : MonoBehaviour
{
    public static GameControl control;

    public float health =10;
    public float experience=10;

    public  Dictionary<string, object> Name_Dic = new Dictionary<string, object>() 
    {
        {"laura",""},
        {"steph ",""},
        {"Ryan",""},      
    };

    void Start()
    {
        control = this;
    }

    void OnGUI()
    {
        GUI.Label(new Rect(10,10,100,30),"Health"+health);
        GUI.Label(new Rect(10,40,100,30),"Experience"+experience);
    }

    public void Save()
    {
    BinaryFormatter bf = new BinaryFormatter();
    FileStream file = File.Create(Application.persistentDataPath +"/playerInfo.dat");

    PlayerData data = new PlayerData();
    data.experience = experience;
    data.health = health;
    data.Name_Dic = Name_Dic;

    bf.Serialize(file, data);

    file.Close();
}

public void Load()
{
    if(File.Exists(Application.persistentDataPath+"/playerInfo.dat"))
    {
        BinaryFormatter bf = new BinaryFormatter();
        FileStream file = File.Open(Application.persistentDataPath+"/playerInfo.dat",FileMode.Open);
        PlayerData data = (PlayerData)bf.Deserialize(file);
        file.Close();

        health = data.health;
        experience = data.experience;
        Name_Dic = data.Name_Dic;
    }
}
}

[Serializable]

class PlayerData
{
public float health;
public float experience;

public  Dictionary<string, object> Name_Dic = new Dictionary<string, object>() 
{
    {"laura",""},
    {"steph ",""},
    {"Ryan",""},      
};

public  Dictionary<string, string> Dialogs_Dic = new Dictionary<string, string>() 
{
    {"A1", "Hello"},
    {"A2", "Nice"},
    {"A3", "Test"},
};

}

现在的问题是,当我单击保存按钮时,我会保存运行状况和体验 int,因为当我单击加载按钮时,我发现这两个变量已保存并加载。我的问题是字典,我不知道当我单击按钮保存时字典值是否保存。如果我单击按钮加载时单击保存和加载的函数时保存字典值,我现在怎么办。是否有解决方案,感谢您的帮助

【问题讨论】:

    标签: c# unity3d save load


    【解决方案1】:

    如果字典值被保存,我现在怎么办......有没有解决方案

    是的,通过使用BinaryReader 回读并将其与您的原始值进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 2021-10-19
      • 2020-01-22
      • 1970-01-01
      相关资源
      最近更新 更多