Unity Csharp -麻烦节省用户输入供以后使用

本文关键字:输入 用户 Csharp 麻烦 节省 Unity | 更新日期: 2023-09-27 18:03:16

我很难弄清楚如何收集用户输入,然后将其保存以供以后使用。我找不到关于堆栈溢出的类似问题,我向其他程序员寻求帮助,但都无济于事。

希望这里有人知道。在一个场景中,你可以输入你选择的任何输入,它就会显示你所写的内容。下面是我的代码:

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    public class TextInput : MonoBehaviour {
InputField input;
InputField.SubmitEvent se;
public Text output;
//public static string[] tasks = new string[]

//variable of array of strings so that you can save output text
void Start () {
    input = gameObject.GetComponent<InputField>();
    se = new InputField.SubmitEvent();
    se.AddListener(SubmitInput);
    input.onEndEdit = se;
}

public void SubmitInput(string arg0)
{

    string currentText = output.text;
    string newText = currentText + arg0 + " has been added to your schedule." + "'n";
    output.text = newText;
    input.text = "";
    // save currentTezt for later use outline
    //tasks.add(currentText)  
    /*Want to make each new text input equal a different amount of time
     */

}
//Need public array so that you can choose from the different strings --- you need the 'append' so that you can continue adding new tasks 

}

我该如何保留输入以便在下一个场景中使用它并显示它?如果答案真的很简单,我很抱歉,我还在学习,希望能变得更好。再次感谢。

Unity Csharp -麻烦节省用户输入供以后使用

您考虑过使用DontDestroyOnLoad吗?在这里可以找到它的文档。

unity论坛上有一个和你的问题类似的问题

Unity推荐的解决方案(*):

  1. 创建一个GameObject,最好在根目录中,并给它一个名字,例如:"持久数据"
  2. 将[DontDestroyOnLoad]放在文件顶部的"class"部分上方,这告诉Unity在所有场景中保持它
  3. 创建一个组件来存储你的数据。一般来说,为你想要保存的每组数据创建一个不同的。"DataFromPlayerCreation"、"DataFromWinningTheGame"
  4. 添加尽可能多的字段,每个你需要,例如DataFromPlayerCreation。UserInput(你没有描述你的输入是什么,所以我不知道它是一个名字,一个密码,无论什么)
  5. 将这些组件附加到上面的1
  6. 使用应用程序。LoadLevel作为normal -你的对象从1。上面是唯一不会被破坏的东西,并且会被拖到下一个场景

(*) -注意:这是一种非常蹩脚的方式,但这是Unity开箱即用的唯一支持方式。