首页 > 解决方案 > 在 Unity 中访问 TM Pro InputField 文本

问题描述

我已经为此努力了好几个小时,但似乎无处可去,因此非常感谢您的帮助。我在 Unity 中创建了一些 TextMeshPro UI InputFields,在用户输入内容后似乎无法访问文本。当它是一个普通的 InputField 但不是 TM Pro 版本时,我可以做到这一点。我已经创建了一个 TMP_InputField 类型的 Serializefield,我已经将它连接到了检查器中(也包括使用 TMPro 命名空间)。有人可以概述将文本转换为变量所需的步骤,因为我很难过!该脚本当前位于不同的 GameObject 上。我有一个名为 theFields 的 TMP_InputField 类型的数组,当我调试 theFields[0].name 时,它​​似乎工作正常(使用 FindObjectsOfType<>)但是当我尝试只访问特定字段时。text 它在游戏期间尝试编辑字段时会引发空引用反对。非常欢迎任何教程/支持!

标签: unity3d

解决方案


您是否尝试过 TMP_InputField 的 Inspector 上的 UnityEvents 字段?

我做了一个简单的脚本,它结合了 TMP_InputField

using UnityEngine;

public class InputfieldListener : MonoBehaviour
{
    public void OnChangedInputField(string input)
    {
        Debug.Log("[OnChangedInputField] " + input);
    }

    public void OnEndedInputField(string input)
    {
        Debug.Log("[OnEndedInputField] " + input);
    }

    public void OnSelectedInputField(string input)
    {
        Debug.Log("[OnSelectedInputField] " + input);
    }

    public void OnDeslectedInputField(string input)
    {
        Debug.Log("[OnDeslectedInputField] " + input);
    }
}

TMP_InputField 检查器

然后你可以找到每个事件的日志。

仅供参考,创作者有一个youtube 频道,并且有一个相关的视频教程


推荐阅读