我想通过场景1中的InputField获取用户名,并访问用户在场景2中输入的用户名。我在场景1中具有InputField和Submit按钮。单击Submit按钮时,场景将发生变化。我该怎么办?
我尝试使用DontDestroyOnLoad()
,但这对我没有用。
要更改我正在使用的场景SceneManager.LoadScene(name);
答案 0 :(得分:1)
我想到了这一点。使用PlayerPrefs实现了您想要的
我创建了一个InputField并附加了一个名为Save的脚本,然后在检查器中的On End Event之后从该脚本调用了SaveText()
Save.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Save : MonoBehaviour
{
InputField userNameField;
void Start()
{
userNameField = GetComponent<InputField>();
}
public void SaveText()
{
PlayerPrefs.SetString("userName", userNameField.text);
Debug.Log(userNameField.text);
}
public void MoveScene(string sceneToLoad)
{
SceneManager.LoadScene(sceneToLoad);
}
}
在下一个场景中,我将名为Load.cs的脚本附加到文本游戏对象上,并在Start()中获得了先前保存的该字符串的信息
Load.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Load : MonoBehaviour
{
Text userNameText;
void Start()
{
userNameText = GetComponent<Text>();
userNameText.text = PlayerPrefs.GetString("userName");
}
}
注意:我不知道这有多有效,但是确实可以做到