解决方案
问题是Text Mesh Pro InputField和本机InputField之间的区别。我使用的TMP在引用它时似乎有所不同。我恢复为原生Inputfield,它立即起作用。
原始错误
我正在尝试将输入字段中的文本保存到一个变量中,以供跨场景使用。目前,当我得到一个空引用时,我什至无法获取它来单独保存文本。香港专业教育学院尝试了多种解决方案,没有任何工作。使用与YouTube和其他在线来源完全相同的示例。
我也尝试过使用PlayerPrefs.SetString / GetString却没有真正的运气。
当前设置如下。
错误消息
NullReferenceException: Object reference not set to an instance of an object
SaveTipBotAddress.SaveAddress () (at Assets/Scripts/SaveTipBotAddress.cs:25)
文本脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SaveTipBotAddress : MonoBehaviour
{
public string ilpAddress;
public GameObject inputText;
public void SaveAddress()
{
ilpAddress = inputText.GetComponent<Text>().text;
}
}
答案 0 :(得分:0)
我看到ILP_TextField是InputField内部的Text对象。为了从InputField获取文本,您需要先获取该InputField的引用,然后才能使用InputField.text
属性获取文本。
在检查器上,您需要将“ Tex Area”对象设置为“ Input Text Area”字段。
您的脚本将是这样:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SaveTipBotAddress : MonoBehaviour
{
public string ilpAddress;
//public GameObject inputText;
public InputField inputTextArea;
public void SaveAddress()
{
ilpAddress = inputTextArea.text;
}
}
答案 1 :(得分:0)
我弄清楚了这个问题。所有答案都很有帮助,但主要问题是我正在使用InputField-TextMeshPro。我不确定在其中调用字段和本机InputField之间的区别,但是当我使用本机InputField时,它立即起作用。
对不起,谢谢。