logo
ReferenciaAPI

Contador

Valor que evoluciona con el tiempo y puede serializarse como estado de red o persistencia.

Contador

Contador representa un valor numérico limitado por min y max que cambia automáticamente según una tasa por segundo.

Es especialmente útil para recursos o estados que evolucionan con el tiempo y deben reconstruirse sin almacenar cada instante intermedio.

Modelo

valor almacenado
      +
  tiempo transcurrido × rate

valor actual

[min, max]

La propiedad value calcula el valor actual usando Eco.TiempoServidorMS en el runtime de Eco.

Configuración

var energia = new Contador(
    value: 100,
    rate: -5,
    min: 0,
    max: 100
);

Cada segundo la energía disminuye aproximadamente cinco unidades hasta alcanzar min.

Propiedades

MiembroFunción
minLímite inferior.
maxLímite superior.
rateCambio por segundo.
valueValor actual calculado.
storedValueValor almacenado internamente.

Tiempo de servidor

El contador utiliza el reloj del servidor, no Time.deltaTime, para calcular su evolución. Esto es importante cuando el valor forma parte de un estado compartido.

double energiaActual = energia.value;

Porcentaje de duración

GetPercent(delta) calcula qué fracción del intervalo permanece antes de que el cambio alcance un límite.

double porcentaje = energia.GetPercent(1.0);

Serialización

Contador implementa tanto IBinarySerializable como IDataNodeSerializable.

Contador
├── min
├── max
├── rate
├── value
└── timestamp

Esto permite conservar el estado sin tener que escribir un valor nuevo cada frame.

Cuándo utilizarlo

Es apropiado para:

  • recursos que regeneran o consumen valor;
  • temporizadores cuantificados como estado;
  • acumuladores limitados;
  • estados persistentes que evolucionan entre dos observaciones.

No es un sustituto de la sincronización continua cuando el gameplay exige una simulación determinista por tick.

Referencias

Serialización

Interfaces de serialización utilizadas por Contador.

Código fuente

Implementación actual.

On this page