private static void ParseParameters(UnityApiEventFunction eventFunction, ApiNode signature, ApiNode details, string owningMessageNamespace, string[] argumentNames)
{
// E.g. OnCollisionExit2D(Collision2D) - doesn't always include the argument name
// Hopefully, we parsed the argument name from the example
var argumentString = SigRegex.Replace(signature.Text, "$2$3");
if (string.IsNullOrWhiteSpace(argumentString)) return;
var argumentStrings = argumentString.Split(',')
.Select(s => s.Trim())
.ToArray();
var total = argumentStrings.Length;
var arguments = argumentStrings.Select((s, i) => new Argument(s, i, total, owningMessageNamespace)).ToArray();
ResolveArguments(details, arguments, argumentNames);
foreach (var argument in arguments)
eventFunction.AddParameter(argument.Name, argument.Type, argument.Description);
}