使用Unity5和c#从输入字段获取字符串,并在另一个场景中显示字符串

本文关键字:字符串 另一个 显示 使用 输入 获取 字段 Unity5 | 更新日期: 2023-09-27 18:14:10

我创建了一个加载时不销毁的游戏对象。我希望这个是输入数据的持有者这样我就可以在另一个场景中访问字符串。问题是如何让用户从输入文本字段输入到我的游戏对象中,并返回到另一个场景中的文本字段。我想我可以使用内置的脚本结束编辑(字符串)脚本附加到检查器的输入字段,以便将输入传递给我的游戏对象。我的目标是从用户输入中获取字符串,并在另一个场景中格式化显示。我还标记了所有输入字段,并将一个脚本附加到我的游戏对象上,该脚本可以找到所有带有标记的游戏对象。这可能是一个更好的获取字符串的方法。

使用Unity5和c#从输入字段获取字符串,并在另一个场景中显示字符串

我会使用playerprefs为另一个会话保存数据。如果您只是想为另一个场景保存数据,请使用静态类。你甚至不需要"Dontdestroyonload"

在项目中创建这个类:

public static class ExampleUserData
{
    public static string MyUserData1;
    public static string MyUserData2;
    //etc..
}

将这个类附加到场景中的游戏对象1:

using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class ExampleScene1 : MonoBehaviour
{
    InputField input1;
    InputField input2;
    void Awake()
    {
        //input1 = something...;
        //input2 = something...;
    }
    void LoadScene2()
    {
        ExampleUserData.MyUserData1 = input1.text;
        ExampleUserData.MyUserData2 = input2.text;
        SceneManager.LoadScene("Scene2");
    }
}

这个在你的第二个场景:

using UnityEngine;
using UnityEngine.UI;
public class ExampleScene2 : MonoBehaviour
{
    InputField input1;
    InputField input2;
    void Awake()
    {
        //input1 = something...;
        //input2 = something...;
    }
    void Start()
    {
        input1.text = ExampleUserData.MyUserData1;
        input2.text = ExampleUserData.MyUserData2;
    }
}

替换Awake()中的代码来查找您的输入字段