logo
ReferenciaAPI

FuncionCacheada

Caché de métodos reflejados utilizada para ejecutar funciones con parámetros de red.

FuncionCacheada

FuncionCacheada encapsula un método descubierto mediante reflexión y conserva su información de parámetros para evitar repetir trabajo al ejecutarlo.

Eco la utiliza en rutas donde una operación llega identificada dinámicamente, como llamadas remotas y otras funciones descubiertas por atributos.

Modelo

Nombre / ID de función

Reflection

FuncionCacheada
 ├── objeto objetivo
 ├── MethodInfo
 ├── parámetros
 └── tipos esperados

Ejecutar

object resultado = funcion.Execute(valor1, valor2);

La ejecución establece success según el resultado del Invoke.

Conversión automática

Si los tipos recibidos no coinciden exactamente con los parámetros declarados, la implementación puede intentar convertirlos mediante Serializacion.CastValue.

Esto permite cierta tolerancia entre versiones del protocolo o representaciones compatibles.

No dependas de la conversión implícita

Los parámetros de una RFC deben diseñarse con tipos estables. La conversión automática es una capacidad de compatibilidad, no una sustitución de un contrato de red bien definido.

RMR y RCR

FuncionCacheada participa en el mecanismo que descubre y ejecuta métodos marcados con atributos de red:

[RMR]
void RecibirMensaje(string mensaje)
{
}
[RCR]
static GameObject CrearUnidad(Vector3 posicion)
{
    return ...;
}

RMR representa una llamada remota; RCR, una rutina utilizada durante la creación remota de objetos.

Identificación de RMR

Una RMR puede utilizar un ID numérico opcional o una propiedad para distinguir varios métodos con el mismo nombre dentro del mismo objeto.

Usar IDs puede ahorrar bytes en rutas extremadamente frecuentes, pero dificulta el diagnóstico y acopla más el protocolo al código.

Referencias

Comunicación · RFC

Concepto de llamadas remotas desde gameplay.

Código fuente

Implementación actual de FuncionCacheada, RMR y RCR.

On this page