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);
    }
示例#2
0
    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);
    }