【问题标题】:How to save variables from a game in a folder?如何将游戏中的变量保存在文件夹中?
【发布时间】:2016-04-01 15:57:49
【问题描述】:

我创建了一个游戏,现在我正在为该游戏制作一个 GUI(带有 UI)。在这个 GUI 中,我有一个名为“SubjectID”的输入字段,玩家可以在其中写下他的名字。我的目标是让每个玩家都有一个文件夹,里面有他的变量(表现和分数)。我怎样才能做到这一点?

这里是我的 SubjectID 输入字段的代码:

public void Start() {


    //Inputfield for SubjectID
    inputFieldSIDCo = GameObject.Find ("Subject").GetComponent<InputField> (); 

    InputFieldSI =  new InputField.SubmitEvent();

    InputFieldSI.AddListener (SubmitSubjectID);

    inputFieldSIDCo.onEndEdit = InputFieldSI; 
}

//function which submits Inputfield SubjectID 
public void SubmitSubjectID(string arg1) {

    //save arg1 in a variable called SUBJECTID (with string characteristics) 
    SUBJECTID = arg1; 
    //Debug.Log (SUBJECTID); 


}

【问题讨论】:

  • 如果你想“存储”一些东西,那么为什么不使用数据库呢?或应用程序设置或某些适合您的文件结构。

标签: c# variables unity3d save input-field


【解决方案1】:

为什么不使用 .NET 序列化?

一旦你了解它是如何工作的,它基本上是自动的。

http://docs.unity3d.com/Manual/script-Serialization.html

【讨论】:

  • 我不是程序员,所以我对这一切都没有使用和经验。你能给我一个提示吗?正如我所说,我的目标是,例如在输入字段中写入: Subject1 ,然后我将有一个名为 Subject1 的文件夹,其中包含 Subject 1 的所有变量。
  • 这比几乎所有现代存储任何东西的方法都要复杂得多。只需使用其他人为我们所有人制作的工具。喜欢序列化:msdn.microsoft.com/en-us/library/ms233843.aspx
  • Olala 这对于我的编程知识水平来说太高了=(如果我用这种方法来做,是否也可以看到哪些变量来自 Subject1,哪些来自 Subject2?跨度>
  • 如果使用这种技术(这听起来很难,但实际上,它是 c# 中最愚蠢的事情之一)您创建了一个类实例,您可以“序列化”该实例以将其转换为编码文件记忆。然后,每当您决定要求“反序列化”项目时,系统将自动获取正确的文件并将实例恢复为以前的状态。如果您的对象包含“名称”字段,并且如果它是私有的,则将其标记为 SerializeField,如果是公共的,则根本不标记它,您也会获得该值。
  • 好的,谢谢您的解释。我现在在 Unity 中找到了一个教程。我现在的问题是:我必须在保存数据后对其进行分析。例如,一个玩家的健康状况对于整个游戏来说是不一样的。我必须以哪种格式保存数据以便之后进行分析?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
相关资源
最近更新 更多