Fotograma de retraso del emisor

Este es otro caso que no es un auténtico problema de compatibilidad de versiones anteriores, sino que estaba presente en el acceso anticipado. Pensamos que merecía la pena explicarlo aquí. Los emisores tienen un retardo de un fotograma porque cuando se clona el objeto de referencia, necesita un fotograma para ejecutar la lógica que contiene y asegurarse de que el estado de todo es correcto.

Por ejemplo:

Imagina que tienes un interruptor y una sierra circular. El interruptor activa la sierra circular. Al seleccionar este aparato para que sea la referencia objetivo de un emisor, la sierra circular aún existe en la escena como objeto de referencia para el emisor, pero ahora está desactivada.

Cuando se emite un objeto, el juego literalmente hace una operación de clonación de la referencia. Así que ahora tienes una copia del interruptor y la sierra circular, pero la sierra está desactivada (el interruptor no está activo).

La emisión de objetos comienza en el fotograma después del código, que envía señales por los cables, de modo que si quisiéramos mostrar los objetos emitidos en el fotograma en el que se emiten, veríamos una sierra estática durante un fotograma y luego, en el siguiente fotograma después de que la señal del interruptor se ejecute a través del cable, comenzaría a girar. De modo que, para evitar problemas como este (y otros mucho más complicados, con varios artilugios, líneas temporales, etc.), no mostramos los objetos en el primer fotograma en el que se emiten. No producen físicas en ese fotograma ni ejecutan lógica (zonas de activación, raycast, etc.).

Hay otro toque ingenioso más en el segundo fotograma; cuando el objeto aparece, si el emisor también se está moviendo, observaremos el fotograma de retraso porque el objeto aparecerá detrás del emisor (acuérdate de las balas saliendo de las naves). ¡Para compensar el hecho de que movemos en el último momento los objetos emitidos hacia el punto desde el que se hubieran emitido si el emisor emitiera ese fotograma! En este punto también se vuelven a calcular todas las velocidades.

En ‘Wildfire’ el personaje pierde dos vidas al morir. Esto se debe a que el personaje reaparece desde un emisor. La lógica del personaje emitido no puede comunicarse en el primer fotograma, haciendo que el sistema lo mate de nuevo.

Líneas temporales emitidas: Aún no tenemos un ejemplo de esto en el contenido de la comunidad, pero lo hemos visto en el nuestro y es un efecto secundario de este fotograma de retraso. También es el mejor ejemplo para visualizar el comportamiento de este emisor.

Un artilugio (p.ej. una puerta NOT) que se emite en el primer fotograma de una línea temporal no activará nada.

Si sabes que el problema es este, lo más sencillo es quitar la puerta NOT de la línea temporal para que active cualquier evento lógico en cuanto se active la lógica. Si necesitas que el activador sea un pulso, quizás tengas que añadir un manipulador de señales.

Información en un círculo

La Guía de usuario de Dreams es un trabajo en curso. Permanece atento a las actualizaciones porque añadiremos más artículos y recursos de aprendizaje con el tiempo.