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

时间:2016-10-21 22:43:04

标签: c# user-interface unity5

我创建了一个在加载时不会破坏的游戏对象。我希望这是输入数据的持有者,以便我可以访问另一个场景中的字符串。问题是如何将用户输入从输入文本字段输入到我的游戏对象中并返回到另一个场景中的文本字段。我想我可以使用内置脚本On End Edit(字符串)脚本附加到检查器中的输入字段,以便将输入传递给我的游戏对象。我的目标是从用户输入中获取字符串并在另一个场景中将其全部格式化。我还标记了所有输入字段,并在我的游戏对象中附加了一个脚本,该脚本可以找到带有标记的所有游戏对象。这可能是获得字符串的更好方法。

1 个答案:

答案 0 :(得分:0)

我会使用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()中的代码以查找输入字段。