C# [持久保存和加载]

Posted

技术标签:

【中文标题】C# [持久保存和加载]【英文标题】:C# [Persistent Saving and Loading] 【发布时间】:2014-10-19 22:09:14 【问题描述】:

好的,所以基本上我有一个小问题,我正在尝试解决这个问题。我正在使用一个名为 GameControl 的游戏对象,它是从 Unity 教程的人那里学到的。我想做的是能够在加载选项后对其进行编辑。我可以让他们保存和加载就好了。我不得不为单人和多人模式切换不同的选项,因为它们有不同的保存和加载数据。现在,当我保存/加载这些数据时。我在加载后无法让它们编辑,因为它似乎在不断加载保存的数据,所以如果我要进行更改,它会变回保存的数据。

When I was just following along, I had this when the options were both the same and I used:

void Start() 
    GameControl.control.Load();

这似乎工作得很好,但现在我有两个不同的加载文件 SP 选项和 MP 选项。而且我只是不知道将这些文件放在哪里,我想也许在我的切换操作中,当我单击单人游戏或单击加载多人游戏时,我可以加载它。但这是我遇到连续加载问题的地方。当我去编辑窗口中的选项时,它会恢复,请帮助我了解将这些负载放在哪里。我不想有加载按钮,我不喜欢这样的想法,我希望它是自动加载,当您单击单人游戏时(获取单人游戏加载文件);和多人游戏(获取多人游戏加载文件)。

void OnGUI() 
    GUI.skin=mainSkin;
    menuSelection=GUI.SelectionGrid(new Rect(Screen.width*.025f,Screen.height*.025f,buttonW,buttonH), menuSelection, button, 1);
    switch(menuSelection) 
    default:
        break;
    case 0:
        windowRect=GUI.Window(0,windowRect,SPOptionsWindow,"Singleplayer Options (Pre-Game)");
        break;
    case 1:
        windowRect=GUI.Window(1,windowRect,MPOptionsWindow,"Multiplayer Options (Pre-Game)");
        break;
    case 2:
        LeaderboardsWindow();
        break;
    

这是我加载加载文件的地方;但是我不确定这是应该在哪里,除非有更多的代码使它在第一次加载后停止运行。我也尝试将它加载到 SPOptionsWindow();和 MPOptionsWindow();但我得到了相同的结果。

【问题讨论】:

【参考方案1】:

啊啊啊,好久不见!所以基本上我纠正这个问题的方法是在 GameControl.cs 文件中添加更多代码。尽管有些功能并不相同,但我所要做的只是用不同的命名约定重新创建相同的类型。更多代码,但它绝对有效。不过暂时。但是,从长远来看,我不确定这是否是我希望拥有的确切解决方案。

可能会出现问题: • 实际发生的选项将需要更多代码来实现。 •也许我无法实现更多代码,但我必须将它改回原来的样子?

这些在我到达那座桥之前我真的不知道,但是,它现在是一个修复,如果有任何其他答案,请把你的想法扔在那里:)

【讨论】:

以上是关于C# [持久保存和加载]的主要内容,如果未能解决你的问题,请参考以下文章

保存和加载信息的最简单方法c#

C# 保存/加载富文本速度问题

如何更好地在 c# (asp.net) 和 SQL Server 上保存和加载图片?

在 C# 中保存和加载 DataGridView 内容和样式

应用程序重新启动时数组未保存。持久数据的问题

Specflow C# - 加载/编辑/保存 xml 文件