统一获取输入字段值然后 Debug.Log ing

时间:2021-05-05 19:21:20

标签: unity3d input

我正在 Unity 中创建一个测试项目,我有一个输入字段和一个按钮。我想从输入中获取文本,然后单击按钮只需 Debug.Log 到 Unity 控制台。所有示例都显示了变量和函数,但没有显示它们如何获取变量的输入。我已经设置了 UI,包括将功能链接到按钮。有什么方法可以给它一个 id 就像在 JavaScript 和 HTML 中一样吗?我不想做任何花哨的事情。这是我的代码:

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

public class main : MonoBehaviour
{

    

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void debugInput() {
        Debug.Log()
    }
}

我想在 Debug.Log 函数的 debugInput 中传递变量。 有人可以帮我吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

InputField 使用回调将文本输入到名为 OnSubmit 的输入字段。如果您更愿意打印用户输入新文本的每一帧,还有 OnValueChanged

可以通过选择您的 InputField 对象在检查器中分配这些回调。检查员应该看起来像下面的照片。

Example Inspector

只需单击 + 按钮,拖入包含您要回调的方法的脚本的对象。确保在选择它时从 Dynamic String 列表中选择它,因为它会自动将 InputField 中的字符串传递给您的函数。您将需要更改代码以采用字符串参数。

public void debugInput(string str) 
{
     Debug.Log(str)
}

Dynamic Listener

如果您更愿意通过代码设置这些值,您可以通过向您的对象添加新的侦听器委托来实现。如果您希望将所有内容保留在脚本中,我可以发布此解决方案的片段。

编辑:我使用的是 TMPro 输入字段,但上面的示例仍然适用于 Unity UI 输入字段。您可以使用 OnSubmit 代替 OnEndEdit。如果需要,您还可以添加自己的 EventTriggers 以使用 OnSubmit

相关问题