C# 如何将数据从一个场景传递到另一个场景?
我想通过场景1中的InputField获取用户名,并访问用户在场景2中输入的用户名。我在场景1中有一个InputField和一个submit按钮。单击“提交”按钮时,场景将更改。我该怎么做呢 我试着使用C# 如何将数据从一个场景传递到另一个场景?,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,我想通过场景1中的InputField获取用户名,并访问用户在场景2中输入的用户名。我在场景1中有一个InputField和一个submit按钮。单击“提交”按钮时,场景将更改。我该怎么做呢 我试着使用DontDestroyOnLoad(),但这对我不起作用 要更改我正在使用的场景,请使用SceneManager.LoadScene(name)我想到了这个。我使用PlayerPrefs实现了您想要的 我创建了一个InputField并附加了一个名为Save的脚本,然后在inspector中的On
DontDestroyOnLoad()
,但这对我不起作用
要更改我正在使用的场景,请使用
SceneManager.LoadScene(name)代码>我想到了这个。我使用PlayerPrefs实现了您想要的
我创建了一个InputField并附加了一个名为Save的脚本,然后在inspector中的On End事件之后从该脚本调用了SaveText()
保存.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);
}
}
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");
}
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.UI;
使用UnityEngine.SceneManagement;
公共类储蓄:单一行为
{
InputField userNameField;
void Start()
{
userNameField=GetComponent();
}
公共void SaveText()
{
PlayerPrefs.SetString(“用户名”,userNameField.text);
Log(userNameField.text);
}
公共场景(字符串场景加载)
{
SceneManager.LoadScene(sceneToLoad);
}
}
在下一个场景中,我将名为Load.cs的脚本附加到一个文本游戏对象,在Start()中,我获得了先前保存的字符串的信息
加载.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);
}
}
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");
}
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.UI;
公共类负载:单一行为
{
文本用户名文本;
void Start()
{
userNameText=GetComponent();
userNameText.text=PlayerPrefs.GetString(“用户名”);
}
}
注意:我不知道这有多有效,但它确实有效您是否尝试过使用PlayerPrefs和静态脚本,请查看-@PraveenPanishetti:我尝试过使用PlayerPrefs,但由于我是一名初学者,我对其理解不多。您能帮我一下吗?DontDestroyOnLoad
有什么问题吗?DontDestroyOnLoad()。您确定正确使用了它吗?因此您只希望访问数据?然后你们可以把它放在一个公共字段中,然后在场景中用另一个脚本访问它2@MD这是最简单的方法,因为你是初学者。然而,如果你想看看有什么不同的方法,请阅读我上面的评论。