Emissor de fotograma com atraso

Este não é propriamente um problema de retrocompatibilidade, mas ocorria no Acesso antecipado. Sentimos que merecia uma explicação neste espaço. Os emissores têm um atraso de um fotograma porque quando o objeto é clonado a partir da sua referência, precisa de um fotograma para que a lógica seja executada e para se certificar de que tudo está no estado correto.

Um exemplo

Imagina que tinhas um interruptor e uma lâmina a rodar. O interruptor liga a lâmina. Quando selecionas esta maquineta para ser a referência alvo de um emissor, a lâmina rotativa ainda existe na cena como objeto de referência para o emissor, mas agora está desativada.

Quando emites um objeto, o jogo realiza uma operação literal de clone na referência. Como tal, agora tens uma cópia do interruptor e da lâmina a roda, mas a lâmina está desativada (interruptor não ativo).

A emissão de objetos ocorre mais tarde, no fotograma, e após o código ter enviado sinais pelos cabos - se quiséssemos mostrar os objetos emitidos no fotograma onde são emitidos, irias ver uma lâmina estática para um fotograma e a lâmina começaria a rodar no fotograma que sucedesse ao momento em que o sinal tinha viajado do interruptor e até ao fim do cabo. Para evitar problemas como este (e outros muito mais complicados que envolvam diversas engenhocas, linhas cronológicas etc.), não apresentamos os objetos no primeiro fotograma em que estes são emitidos. Os objetos em questão não geram elementos de física nesse fotograma e não executam lógica (ativar zonas/raycasts etc.).

Existe alguma inteligência no segundo fotograma, quando o objeto aparece. Se o emissor também estiver em movimento, a latência do fotograma será visível porque o objeto irá aparecer atrás do emissor. Para compensar este aspeto, movemos os objetos emitidos no último momento para onde estes seriam emitidos se o emissor emitisse este fotograma! Todas as velocidades são também recalculadas.

Em "Wildfire", a personagem perde duas vidas quando morre. Tal acontece porque a personagem reaparece a partir de um emissor. A lógica contida na personagem emitida não comunica com o primeiro fotograma, fazendo com que o sistema a mate novamente.

Linhas cronológicas emitidas: Ainda não temos um exemplo para apresentar sobre esta situação no conteúdo da Comunidade, mas já nos aconteceu e é uma consequência deste fotograma de atraso. É também o melhor exemplo para visualizar o comportamento do emissor.

Uma engenhoca (e NÃO um portal) no primeiro fotograma de uma linha cronológica e que seja emitido, não irá desencadear nada.

Se souberes o que está do outro lado, a coisa mais simples é NÃO removeres o portal da linha cronológica para que desencadeie qualquer evento de lógica assim que a lógica fique ativa. Se precisares que esse mecanismo de ativação seja um impulso, podes ter de adicionar um manipulador de sinal.

Informação num círculo

O Guia de Utilizador do Dreams é um trabalho em progresso. Fica de olho nas atualizações, à medida que adicionamos mais recursos de aprendizagem e artigos.