Как передать данные из одной сцены в другую? - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу взять имя пользователя через InputField в сцене 1 и получить доступ к имени пользователя, введенному пользователем в сцене 2. У меня есть InputField и кнопка отправки в сцене 1. При нажатии кнопки отправки сцена изменяется. Как мне это сделать?

Я пытался использовать DontDestroyOnLoad(), но у меня это не сработало.

Для смены сцены я использую SceneManager.LoadScene(name);

1 Ответ

1 голос
/ 24 апреля 2019

Здесь я придумал это. Я достиг того, что вы хотели, используя PlayerPrefs

Я создал InputField и прикрепил к нему скрипт с именем Save, а затем вызвал SaveText () из этого скрипта после On EndСобытие в инспекторе

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");

}

}

Примечание: я не знаю, насколько это эффективно, но это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...