in Scripts/Runtime/VoiceService.cs [132:156]
private void ExecuteRegisteredMatch(RegisteredMatchIntent registeredMethod,
WitIntentData intent, WitResponseNode response)
{
if (intent.confidence >= registeredMethod.matchIntent.MinConfidence &&
intent.confidence <= registeredMethod.matchIntent.MaxConfidence)
{
foreach (var obj in FindObjectsOfType(registeredMethod.type))
{
var parameters = registeredMethod.method.GetParameters();
if (parameters.Length == 1)
{
registeredMethod.method.Invoke(obj, new object[] {response});
}
else if (parameters.Length == 0)
{
registeredMethod.method.Invoke(obj, Array.Empty<object>());
}
else
{
throw new ArgumentException(
"Too many parameters on method tagged with MatchIntent. Match intent only supports methods with no parameters or with a WitResponseNode parameter.");
}
}
}
}