我想通过场景1中的InputField获取用户名并访问用户在场景2中输入的用户名。我在场景1中有一个InputField和一个提交按钮。当单击提交按钮时,场景会发生变化。我该怎么办呢?
我尝试使用DontDestroyOnLoad()
,但这对我没有用。
要改变场景,我正在使用SceneManager.LoadScene(name);
在这里,我想出了这个。我使用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()中,我获得了之前保存的String的信息。
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");
}
}
注意:我不知道这是多么有效,但它确实有效