Atraso de quadro de emissor

Este também não é bem um problema de retrocompatibilidade, mas estava presente no Acesso Antecipado. Nós achamos que valia a pena explicá-lo aqui. Emissores têm um quadro de atraso porque, quando o objeto é clonado da referência, ele precisa de um quadro para executar a lógica contida e garantir que tudo esteja correto.

Um exemplo

Imagine que você tem um interruptor e uma lâmina giratória. O interruptor está ativando a espada giratória. Quando você seleciona essa engenhoca para ser a referência de alvo de um emissor, a lâmina giratória ainda existe na cena como um objeto de referência para o emissor, mas ela agora está desativada.

Quando você emite um objeto, o jogo executa literalmente uma operação de clonagem na referência. Então agora você tem uma cópia do interruptor e da lâmina giratória, mas a lâmina está desativada (interruptor não ativo).

O código que envia sinais pelos fios é executado antes da emissão de objetos no quadro. Então, se tentássemos mostrar os objetos emitidos no quadro em que eles foram emitidos, você veria uma lâmina parada por um quadro e, depois, no quadro seguinte após o sinal do interruptor ter percorrido o fio, ela começaria a girar. Então, para evitar problemas como esses (e outros muito mais complicados envolvendo diversos trecos, linhas temporais etc), nós não exibimos os objetos no primeiro quadro em que eles são emitidos. Eles não geram física nesse quadro nem executam lógica (zonas de ativação/raycasts etc).

O segundo quadro tem um toque extra de astúcia. Quando o objeto aparece, se o emissor também estiver se movendo, é possível notar o quadro de atraso porque o objeto surgirá atrás do emissor. Para compensarmos isso, nós movemos os objetos emitidos no último minuto para onde eles teriam sido emitidos se o emissor tivesse emitido esse quadro! Todas as velocidades também são recalculadas nesse momento.

Em "WildFire", o personagem perde duas vidas ao morrer. Isso acontece porque o personagem ressurge de um emissor. Existe uma falha de comunicação na lógica dentro do personagem emitido no primeiro quadro, fazendo com que o sistema o mate de novo.

Linhas Temporais emitidas: Nós ainda não encontramos um exemplo disso nos conteúdos da comunidade, mas aconteceu conosco e é um efeito indireto desse quadro de atraso. Também é o melhor exemplo para visualizar o comportamento desse emissor.

Um treco (por exemplo, um Portão NÃO) no primeiro quadro de uma linha temporal emitida não conseguirá acionar nada.

Caso você se depare com esse problema, a solução mais simples é tirar o Portão NÃO da Linha Temporal para que ele acione qualquer evento de lógica assim que a lógica for ativada. Se você quiser que esse gatilho seja um pulso, talvez seja necessário adicionar um Manipulador de Sinal.

Informações circuladas

O Guia do Usuário do Dreams é um trabalho em andamento. Vamos adicionar mais recursos de aprendizado e artigos com o tempo, então, fique de olho nas atualizações.