TMP_InputField : inspector 可以为 onvaluechanged 之类的东西添加方法调用,但不能为 onsubmit 添加方法调用?

TMP_InputField : in inspector can add method calls for things like onvaluechanged, but not for onsubmit?

https://docs.unity3d.com/Packages/com.unity.textmeshpro@1.3/api/TMPro.TMP_InputField.html#TMPro_TMP_InputField_onSubmit

这里是onsubmit方法,但是在编辑器中没有暴露,只暴露了onvaluechanged、onselect、onendedit、ondeselect。

我可以使用 onendedit,但是我将此输入字段用于聊天框,如果用户按 ESCAPE 键中止他的聊天,目前 onendedit 仍将触发并发送消息。我想要一些仅在用户按下 ENTER 时触发的东西,我想这将由 onsubmit 涵盖,但由于某种原因它没有在检查器中公开。

任何建议表示赞赏。谢谢

您必须使用代码添加它。 这是一种在他们提交时让事情发生的单行方法。

    Start()
    {
        GetComponent<TMP_InputField>().onSubmit.AddListener((string input)=>{DoThing();});
    }

更容易理解的版本...

    public TMP_InputField MyInputfield

    Start()
    {
        MyInputfield.onSubmit.AddListener(DoStuffWhenSubmitted);
    }
    
    void DoStuffWhenSubmitted(string input)
    {
        // do stuff here
    }