public void callMailruByCallbackAndParams(string functionName, Action <object, Callback> action, params object[] parameters) { Callback callback = callbackPool.getCallback(CallbackType.DISPOSABLE); callback.action = action; string initialization = ""; string functionParams = ""; for (int i = 0; i < parameters.Length; i++) { initialization += @" paramNUM=PARAMETER_JSON; " .Replace("NUM", "" + i) .Replace("PARAMETER_JSON", Json.Serialize(parameters[i])); functionParams += ", paramNUM".Replace("NUM", "" + i); } string eval = @" INITIALIZATION function _callbackCALLBACK_ID(result){ callback(CALLBACK_ID, result); } FUNCTION_NAME(_callbackCALLBACK_ID ADDITIONAL_PARAMETERS); " .Replace("INITIALIZATION", initialization) .Replace("CALLBACK_ID", "" + callback.id) .Replace("FUNCTION_NAME", functionName) .Replace("ADDITIONAL_PARAMETERS", functionParams); Debug2.LogDebug("callMailruByCallbackAndParams external evaluation: \n" + eval); Application.ExternalEval(eval); }
public void api(string methodName, object paramObject, Action <object, Callback> callback) { Callback c = callbackPool.getCallback(CallbackType.DISPOSABLE); c.action = callback; string eval = @" function _callbackCALLBACK_ID(result){ callback(CALLBACK_ID, result); } var params=PARAMS_JSON_STRING; VK.api(""METHOD_NAME"",params,_callbackCALLBACK_ID); " .Replace("CALLBACK_ID", "" + c.id) .Replace("METHOD_NAME", methodName) .Replace("PARAMS_JSON_STRING", Json.Serialize(paramObject)); Debug2.LogDebug("vk.api external evaluation: \n" + eval); Application.ExternalEval(eval); }