I'm new to Unity and my problem seems very simple but I can't find an answer online. I'm trying to implement VoiceSDK (speech recognition) on a Oculus Quest. There's a event called OnError(string, string) automatically called by Wit when an error occurs. But using the inspector, I can't make these strings displayed in a TextMeshPro. I can only with event giving 1 parameter. The only functions I can use are "BroadcastMessage" or "SendMessage"...
As said you can't directly set the Text.text
via the event.
You will need a dedicated component on your Text
s like e.g.
[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?
}
}
And then in the drop-down you rather select this HandleError
method from the dynamic ones.
Or alternatively you do the se but on this object itself and have a component like
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;
}
}
and just reference your two texts accordingly