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
}
我该如何保留输入以便在下一个场景中使用它并显示它?如果答案真的很简单,我很抱歉,我还在学习,希望能变得更好。再次感谢。
您考虑过使用DontDestroyOnLoad
吗?在这里可以找到它的文档。
unity论坛上有一个和你的问题类似的问题
Unity推荐的解决方案(*):
- 创建一个GameObject,最好在根目录中,并给它一个名字,例如:"持久数据"
- 将[DontDestroyOnLoad]放在文件顶部的"class"部分上方,这告诉Unity在所有场景中保持它 创建一个组件来存储你的数据。一般来说,为你想要保存的每组数据创建一个不同的。"DataFromPlayerCreation"、"DataFromWinningTheGame"
- 添加尽可能多的字段,每个你需要,例如DataFromPlayerCreation。UserInput(你没有描述你的输入是什么,所以我不知道它是一个名字,一个密码,无论什么)
- 将这些组件附加到上面的1
- 使用应用程序。LoadLevel作为normal -你的对象从1。上面是唯一不会被破坏的东西,并且会被拖到下一个场景
(*) -注意:这是一种非常蹩脚的方式,但这是Unity开箱即用的唯一支持方式。