0

我是 Unity 的新手,我的问题看起来很简单,但我在网上找不到答案。我正在尝试在 Oculus Quest 上实现 VoiceSDK(语音识别)。当发生错误时,Wit 会自动调用一个名为 OnError(string, string) 的事件。但是使用检查器,我无法使这些字符串显示在 TextMeshPro 中。我只能用事件给出 1 个参数。我可以使用的唯一功能是“BroadcastMessage”或“SendMessage”......

活动图片

4

1 回答 1

0

如前所述,您不能直接Text.text通过事件设置。

您将需要一个专用组件,Text例如

[RequireComponent (typeof (Text))]
public class ErrorHandler : MonoBehaviour
{
    [SerializeField] private Text _text;

    void Awake ()
    {
        if(!_text) _text = GetComponent<Text>();
    }

    public void HandleError(string a, string b)
    {
        _text.text = a; // or b?
    }
}

然后在下拉列表中,您宁愿从动态HandleError方法中选择此方法。


或者,您也可以在此对象本身上执行 se 并具有类似的组件

public class ErrorHandler : MonoBehaviour
{
    [SerializeField] private Text buttonText;
    [SerializeField] private Text logText;

    public void HandleError(string a, string b)
    {
        buttonText.text = a;
        logText.text = b;
    }
}

并相应地参考您的两个文本

于 2022-02-22T05:14:32.660 回答