Я хочу написать сценарий, из которого я могу использовать переменную имени в другой сцене в Unity 2d - PullRequest
0 голосов
/ 01 апреля 2020
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class VisualNovelScript : MonoBehaviour
{

    public static string InputName;
    public GameObject InputField;

    public void StoreName()
    {
        InputName = InputField.GetComponent<Text>().text;
    }

}

Это скрипт, из которого я хочу имя переменной.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UserNameInput : MonoBehaviour
{
    private static string InputNameShow;
    public GameObject TextDisplay;

    public void SetName()
    {
        InputNameShow = VisualNovelScript.InputName;
        TextDisplay.GetComponent<Text>().text = "Hello " + InputNameShow;
    }
}

И это скрипт, откуда я связал переменную из первого скрипта, и я хочу показать имя, которое пользователь вошел, я пробовал разные возможности в течение последних нескольких дней, но ни один из них не работал.

1 Ответ

1 голос
/ 01 апреля 2020

Я думаю, лучше использовать PlayerPrefs для этой задачи, также нет необходимости ссылаться на GO и получать компонент, вы можете просто обратиться к его типу напрямую. Ваш код должен выглядеть следующим образом

public InputField InputField;
public void StoreName()
{
    PlayerPrefs.SetString("Username", InputField.text);
    PlayerPrefs.Save();
}

А в другой вашей сцене используйте GetString

public Text TextDisplay;
public void SetName()
{
    TextDisplay.text = "Hello " + PlayerPrefs.GetString("Username");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...