Qual linguagem o Unreal Engine usa? C++ e Blueprint
O Unreal Engine usa C++ para sistemas nativos e Blueprint para scripting visual. Entenda a fronteira, a primeira classe C++, os testes de build e como usar ambos.

Um visual específico para enquadrar o fluxo de trabalho de programação c++ do unreal engine; não uma captura de tela da Epic Games. Visual original SEELE AI gerado com Seedream.
O primeiro fluxo de trabalho Unreal nativo online do mundo
Qual é a linguagem de programação do Unreal Engine?
A resposta curta é C++ mais scripting visual Blueprint. C++ controla módulos nativos, APIs tipadas, acesso de baixo nível, testes automatizados e sistemas críticos; Blueprint controla composição visual, eventos, referências, montagem de gameplay e ajustes para designers. Programar no Unreal Engine normalmente combina os dois. Comece com uma classe C++ refletida, exponha apenas as propriedades e funções necessárias, compile, teste o Blueprint filho, reabra o projeto e empacote um alvo representativo antes de considerar a fronteira estável.
Blueprint é outra linguagem de programação do Unreal Engine?
Blueprint é scripting visual do Unreal Engine, não um substituto geral para C++. Ele chama APIs da engine e estende classes C++. Use a menor fronteira que a equipe consiga ler, testar, perfilar e manter.
Resposta rápida: programação em c++ do unreal engine
Para programação em Unreal Engine em C++, defina ownership em torno de UCLASS e reflection e módulos e Build.cs, depois decida qual comportamento pertence ao Blueprint, ao C++, a uma interface ou a dados. Mantenha o ciclo de vida de Actor inspecionável, trate os limites de debugger e Live Coding como uma restrição de aceitação e prove o design em um exemplo mínimo em execução antes de espalhá-lo pelo projeto.
A SEELE AI pode gerar um jogo nativo Unreal 5, visualizá-lo no navegador, otimizá-lo e empacotá-lo, e fornecer um jogo para download ou construção empacotada para publicação externa ou jogos Seele pagos. Vendas não são garantidas.
1. Definir o conceito de programação do Unreal e seu proprietário
“Definir o conceito de programação do Unreal e seu responsável” significa nomear o objeto do engine, o ciclo de vida e a fonte da verdade. Para programação em Unreal Engine em C++, a relação imediata é entre UCLASS e reflection e módulos e Build.cs; o ciclo de vida de Actor fornece a próxima restrição que impede que um resultado aparentemente correto vire uma surpresa em produção. Localize esses itens entre Actors, Components, UObjects, Blueprints, módulos C++, interfaces, events e data assets, informe a versão do engine ou plataforma e identifique quem possui a entrada e a saída. Isso transforma Unreal Engine C++ Programming Roadmap de um tema amplo em uma decisão que outro desenvolvedor pode inspecionar e repetir.
Aplique a decisão à programação do Unreal Engine com um fluxo de trabalho estreito e reversível. Abra a revisão exata do projeto ou a fonte oficial de origem, registre o valor atual do UCLASS e reflection, faça a menor alteração necessária para exercitar módulos e Build.cs, e observe o ciclo de vida de Actor no editor, runtime, build ou evidência pública datada onde isso realmente se encaixa. Mantenha um exemplo runtime mínimo com logs, estado do depurador, propriedade e uma entrada reprodutível. Salve as configurações relevantes, caminho de ativo ou mapa, hardware ou plataforma e data de publicação da fonte para que o resultado permaneça compreensível após o término da sessão original.
Rejeite o resultado se ele depender de referências fortes, casts sem verificação, trabalho por frame e suposições de ciclo de vida que só funcionam em uma sessão do editor. Essa falha pode fazer com que UCLASS e reflection pareçam corretos enquanto módulos e Build.cs ou o ciclo de vida do Actor permanecem não verificados. Restaure a revisão conhecida, altere um único owner, reinicie ou reconstrua quando o estado em cache importar, e repita o mesmo caminho de aceitação mais um caso de sucesso próximo. Registre ordem de execução, alocação, tick time, dependências de carregamento, tráfego de replicação e cobertura de testes; se essas observações variarem entre releases ou dispositivos, publique o intervalo de suporte e a limitação em vez de apresentar uma máquina ou captura de tela como regra universal do Unreal.
Checklist para definir o conceito de programação do Unreal e seu dono
- Defina a decisão para “Definir o conceito de programação do Unreal e seu proprietário” em uma frase.
- Registre como UCLASS e reflection são propriedade, versionados e validados.
- Teste a consulta relacionada “unreal engine programming” com os mesmos critérios de aceitação.
- Capture ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes.
- Mantenha uma revisão operacional reversível e registre a limitação que forçaria rollback.
2. Escolher a fronteira certa de Blueprint, C++ ou dados
“Escolher o limite certo entre Blueprint, C++ ou dados” significa posicionar o comportamento onde designers e programadores possam mantê-lo. Para programação em Unreal Engine em C++, a relação imediata é entre módulos e Build.cs e o ciclo de vida de Actor; os limites de debugger e Live Coding fornecem a próxima restrição que impede que um resultado aparentemente correto vire uma surpresa em produção. Localize esses itens entre Actors, Components, UObjects, Blueprints, módulos C++, interfaces, events e data assets, informe a versão do engine ou plataforma e identifique quem possui a entrada e a saída. Isso transforma Unreal Engine C++ Programming Roadmap de um tema amplo em uma decisão que outro desenvolvedor pode inspecionar e repetir.
Aplique a decisão à programação para Unreal Engine com um fluxo de trabalho estreito e reversível. Abra a revisão exata do projeto ou a fonte oficial de origem, registre o valor atual de módulos e Build.cs, faça a menor alteração necessária para exercitar o ciclo de vida de Actor, e observe os limites de debugger e Live Coding no editor, runtime, build ou evidência pública datada onde isso realmente se encaixa. Mantenha um exemplo runtime mínimo com logs, estado do depurador, propriedade e uma entrada reprodutível. Salve as configurações relevantes, caminho de ativo ou mapa, hardware ou plataforma e data de publicação da fonte para que o resultado permaneça compreensível após o término da sessão original.
Rejeite o resultado se ele depender de referências fortes, casts não verificados, trabalho por frame e suposições de ciclo de vida que só se mantêm em uma sessão do editor. Essa falha pode fazer com que módulos e Build.cs pareçam corretos enquanto o ciclo de vida de Actor ou os limites de debugger e Live Coding permaneçam não verificados. Restaure a revisão conhecida, altere um proprietário, reinicie ou reconstruía quando o estado em cache importa, e repita o mesmo caminho de aceitação mais um caso de sucesso próximo. Registre ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes; se essas observações variarem entre releases ou dispositivos, publique o intervalo suportado e a limitação em vez de apresentar uma máquina ou captura de tela como regra universal de Unreal.

Checklist para escolher a fronteira certa de Blueprint, C++ ou dados
- Defina a decisão para “Choose the right Blueprint, C++, or data boundary” em uma frase.
- Registre como módulos e Build.cs são propriedade, versionados e validados.
- Teste a consulta relacionada “programming for unreal engine” com os mesmos critérios de aceitação.
- Capture ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes.
- Mantenha uma revisão operacional reversível e registre a limitação que forçaria rollback.
3. Construir um exemplo mínimo funcional
“Construir um exemplo mínimo funcional” significa conectar entradas, mudanças de estado, saída em runtime e tratamento de falhas. Para programação em unreal engine c++, a relação imediata é entre ciclo de vida do Actor e limites de debugger e Live Coding; UCLASS e reflection fornecem a próxima restrição que evita que um resultado aparentemente correto vire uma surpresa em produção. Localize esses itens entre Actors, Components, UObjects, Blueprints, módulos C++, interfaces, eventos e data assets, informe a versão do engine ou plataforma e identifique quem é o dono da entrada e da saída. Isso transforma o Unreal Engine C++ Programming Roadmap de um tópico amplo em uma decisão que outro desenvolvedor pode inspecionar e repetir.
Aplique a decisão à programação em unreal engine com um fluxo de trabalho estreito e reversível. Abra a revisão exata do projeto ou fonte de primeira parte, registre o valor atual do ciclo de vida do Actor, faça a menor alteração necessária para exercitar limites de debugger e Live Coding, e observe UCLASS e reflection no editor, runtime, build ou evidência pública datada onde isso realmente pertence. Mantenha um exemplo mínimo em runtime com logs, estado do debugger, ownership e uma entrada reproduzível. Salve as configurações relevantes, o caminho de ativo ou mapa, o hardware ou plataforma e a data de publicação da fonte para que o resultado permaneça compreensível após o fim da sessão original.
Rejeite o resultado se ele depender de referências fortes, casts não verificados, trabalho por frame e suposições de ciclo de vida que só se mantêm em uma sessão do editor. Essa falha pode fazer com que o ciclo de vida de Actor pareça correto enquanto os limites de debugger e Live Coding ou UCLASS e reflection permaneçam não verificados. Restaure a revisão conhecida, altere um proprietário, reinicie ou reconstrua quando o estado em cache importa, e repita o mesmo caminho de aceitação mais um caso de sucesso próximo. Registre ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes; se essas observações variarem entre releases ou dispositivos, publique o intervalo suportado e a limitação em vez de apresentar uma máquina ou captura de tela como regra universal de Unreal.
Checklist para construir um exemplo mínimo funcional
- Defina a decisão para “Build one minimal working example” em uma frase.
- Registre como o ciclo de vida do Actor é propriedade, versionado e validado.
- Teste a consulta relacionada “programming in unreal engine” com os mesmos critérios de aceitação.
- Capture ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes.
- Mantenha uma revisão operacional reversível e registre a limitação que forçaria rollback.
4. Rastrear execução e fluxo de dados
“Rastrear execução e fluxo de dados” significa usar logs, breakpoints, depuração de Blueprint e inspeção de ownership. Para programação c++ do Unreal Engine, a relação imediata é entre limites de debugger e Live Coding e UCLASS e reflection; módulos e Build.cs fornecem a próxima restrição que evita que um resultado aparentemente correto vire uma surpresa em produção. Localize esses itens entre Actors, Components, UObjects, Blueprints, módulos C++, interfaces, eventos e data assets, nomeie a versão do engine ou da plataforma e identifique quem é o dono da entrada e da saída. Isso transforma o Unreal Engine C++ Programming Roadmap de um tema amplo em uma decisão que outro desenvolvedor pode inspecionar e repetir.
Aplique a decisão para linguagens de programação do Unreal Engine com um fluxo de trabalho estreito e reversível. Abra a revisão exata do projeto ou fonte de primeira parte, registre o valor atual dos limites de debugger e Live Coding, faça a menor alteração necessária para exercitar UCLASS e reflection, e observe os módulos e Build.cs no editor, tempo de execução, build ou evidência pública datada onde isso realmente pertence. Mantenha um exemplo mínimo em runtime com logs, estado do debugger, ownership e uma entrada reproduzível. Salve as configurações relevantes, o caminho do ativo ou mapa, o hardware ou plataforma e a data de publicação da fonte para que o resultado permaneça compreensível depois que a sessão original terminar.
Rejeite o resultado se ele depender de referências fortes, casts sem checagem, trabalho por frame e suposições de ciclo de vida que só funcionam em uma única sessão do editor. Essa falha pode fazer parecer que os limites de debugger e Live Coding estão corretos enquanto UCLASS e reflection ou módulos e Build.cs continuam não verificados. Restaure a revisão conhecida, mude um único owner, reinicie ou reconstrua quando o estado em cache importar, e repita o mesmo caminho de aceitação mais um caso de sucesso próximo. Registre ordem de execução, alocação, tick time, dependências de carregamento, tráfego de replicação e cobertura de testes; se essas observações variarem entre releases ou dispositivos, publique o intervalo suportado e a limitação em vez de apresentar uma máquina ou captura de tela como regra universal do Unreal.
Checklist de rastreamento de fluxo de execução e dados
- Declare a decisão para “Rastrear execução e fluxo de dados” em uma frase.
- Registre como os limites de depurador e Live Coding são proprietários, versionados e validados.
- Teste a consulta relacionada “programming languages for unreal engine” com os mesmos critérios de aceitação.
- Capture ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes.
- Mantenha uma revisão operacional reversível e registre a limitação que forçaria rollback.
5. Evitar acoplamento e armadilhas de lifecycle
“Evitar acoplamentos e armadilhas de ciclo de vida” significa cobrir casts, referências fortes, ordem de inicialização e estado obsoleto. Para programação em Unreal Engine em C++, a relação imediata é entre UCLASS e reflection e módulos e Build.cs; o ciclo de vida de Actor fornece a próxima restrição que impede que um resultado aparentemente correto vire uma surpresa em produção. Localize esses itens entre Actors, Components, UObjects, Blueprints, módulos C++, interfaces, events e data assets, informe a versão do engine ou plataforma e identifique quem possui a entrada e a saída. Isso transforma Unreal Engine C++ Programming Roadmap de um tema amplo em uma decisão que outro desenvolvedor pode inspecionar e repetir.
Aplique a decisão ao tutorial de C++ do Unreal Engine com um fluxo de trabalho estreito e reversível. Abra a revisão exata do projeto ou a fonte de first-party, registre o valor atual de UCLASS e reflection, faça a menor alteração necessária para exercitar módulos e Build.cs, e observe o lifecycle do Actor no editor, runtime, build ou evidência pública datada onde isso realmente se aplica. Mantenha um exemplo mínimo de runtime com logs, estado do depurador, ownership e uma entrada reproduzível. Salve as configurações relevantes, o caminho do ativo ou mapa, hardware ou plataforma e a data de publicação da fonte para que o resultado permaneça compreensível após o fim da sessão original.
Rejeite o resultado se ele depender de referências fortes, casts sem verificação, trabalho por frame e suposições de ciclo de vida que só funcionam em uma sessão do editor. Essa falha pode fazer com que UCLASS e reflection pareçam corretos enquanto módulos e Build.cs ou o ciclo de vida do Actor permanecem não verificados. Restaure a revisão conhecida, altere um único owner, reinicie ou reconstrua quando o estado em cache importar, e repita o mesmo caminho de aceitação mais um caso de sucesso próximo. Registre ordem de execução, alocação, tick time, dependências de carregamento, tráfego de replicação e cobertura de testes; se essas observações variarem entre releases ou dispositivos, publique o intervalo de suporte e a limitação em vez de apresentar uma máquina ou captura de tela como regra universal do Unreal.

Checklist para evitar acoplamento e armadilhas de ciclo de vida
- Defina a decisão para “Evitar acoplamento e armadilhas de lifecycle” em uma frase.
- Registre como UCLASS e reflection são propriedade, versionados e validados.
- Teste a consulta relacionada “c++ tutorial unreal engine” com os mesmos critérios de aceitação.
- Capture ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes.
- Mantenha uma revisão operacional reversível e registre a limitação que forçaria rollback.
6. Perfilar o custo em runtime
“Perfilar o custo em runtime” significa medir trabalho de tick, alocações, replicação, carregamento e hot paths. Para programação em Unreal Engine em C++, a relação imediata é entre módulos e Build.cs e o ciclo de vida de Actor; os limites de debugger e Live Coding fornecem a próxima restrição que impede que um resultado aparentemente correto vire uma surpresa em produção. Localize esses itens entre Actors, Components, UObjects, Blueprints, módulos C++, interfaces, events e data assets, informe a versão do engine ou plataforma e identifique quem possui a entrada e a saída. Isso transforma Unreal Engine C++ Programming Roadmap de um tema amplo em uma decisão que outro desenvolvedor pode inspecionar e repetir.
Aplique a decisão à programação em Unreal Engine com um fluxo de trabalho estreito e reversível. Abra a revisão exata do projeto ou fonte first-party, registre o valor atual de módulos e Build.cs, faça a menor alteração necessária para exercitar o ciclo de vida do Actor e observe os limites do depurador e do Live Coding no editor, runtime, build ou evidência pública datada onde isso realmente pertence. Mantenha um exemplo mínimo de runtime com logs, estado do depurador, ownership e uma entrada reproduzível. Salve as configurações relevantes, o caminho do ativo ou mapa, hardware ou plataforma e a data de publicação da fonte para que o resultado permaneça compreensível após o fim da sessão original.
Rejeite o resultado se ele depender de referências fortes, casts não verificados, trabalho por frame e suposições de ciclo de vida que só se mantêm em uma sessão do editor. Essa falha pode fazer com que módulos e Build.cs pareçam corretos enquanto o ciclo de vida de Actor ou os limites de debugger e Live Coding permaneçam não verificados. Restaure a revisão conhecida, altere um proprietário, reinicie ou reconstruía quando o estado em cache importa, e repita o mesmo caminho de aceitação mais um caso de sucesso próximo. Registre ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes; se essas observações variarem entre releases ou dispositivos, publique o intervalo suportado e a limitação em vez de apresentar uma máquina ou captura de tela como regra universal de Unreal.
Checklist de profile de custo em runtime
- Defina a decisão para “Perfilar o custo em runtime” em uma frase.
- Registre como módulos e Build.cs são propriedade, versionados e validados.
- Teste a consulta relacionada “unreal engine programming” com os mesmos critérios de aceitação.
- Capture ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes.
- Mantenha uma revisão operacional reversível e registre a limitação que forçaria rollback.
7. Transformar o exemplo em um padrão de projeto mantenível
“Transformar o exemplo em um padrão de projeto sustentável” significa adicionar testes, nomenclatura, interfaces, documentação e limites de revisão. Para programação em C++ do Unreal Engine, a relação imediata é entre lifecycle do Actor e limites do depurador e Live Coding; UCLASS e reflection fornecem a próxima restrição que impede um resultado aparentemente correto de virar uma surpresa em produção. Localize esses itens entre Actors, Components, UObjects, Blueprints, módulos C++, interfaces, eventos e data assets, nomeie a versão do engine ou da plataforma e identifique quem é proprietário da entrada e da saída. Isso transforma o Unreal Engine C++ Programming Roadmap de um tópico amplo em uma decisão que outro desenvolvedor pode inspecionar e repetir.
Aplique a decisão à programação para Unreal Engine com um fluxo de trabalho estreito e reversível. Abra a revisão exata do projeto ou a fonte oficial de origem, registre o valor atual do ciclo de vida de Actor, faça a menor alteração necessária para exercitar os limites de debugger e Live Coding, e observe UCLASS e reflection no editor, runtime, build ou evidência pública datada onde isso realmente se encaixa. Mantenha um exemplo runtime mínimo com logs, estado do depurador, propriedade e uma entrada reprodutível. Salve as configurações relevantes, caminho de ativo ou mapa, hardware ou plataforma e data de publicação da fonte para que o resultado permaneça compreensível após o término da sessão original.
Rejeite o resultado se ele depender de referências fortes, casts não verificados, trabalho por frame e suposições de ciclo de vida que só se mantêm em uma sessão do editor. Essa falha pode fazer com que o ciclo de vida de Actor pareça correto enquanto os limites de debugger e Live Coding ou UCLASS e reflection permaneçam não verificados. Restaure a revisão conhecida, altere um proprietário, reinicie ou reconstrua quando o estado em cache importa, e repita o mesmo caminho de aceitação mais um caso de sucesso próximo. Registre ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes; se essas observações variarem entre releases ou dispositivos, publique o intervalo suportado e a limitação em vez de apresentar uma máquina ou captura de tela como regra universal de Unreal.
Transforme o exemplo em uma lista de verificação de padrão de projeto sustentável
- Defina a decisão para “Turn the example into a maintainable project pattern” em uma frase.
- Registre como o ciclo de vida do Actor é propriedade, versionado e validado.
- Teste a consulta relacionada “programming for unreal engine” com os mesmos critérios de aceitação.
- Capture ordem de execução, alocação, tempo de tick, dependências de carregamento, tráfego de replicação e cobertura de testes.
- Mantenha uma revisão operacional reversível e registre a limitação que forçaria rollback.
Fluxo de trabalho SEELE AI no Unreal 5: gerar, visualizar, otimizar, empacotar e publicar
SEELE AI é útil antes ou ao lado da produção no Unreal quando a equipe precisa comparar direção de cena, loop do jogador, sensação de câmera, briefing de conteúdo ou plano de testes. Abra a página canônica do Unreal, escolha um card de workspace real e leve o prompt para o workspace de geração do navegador com sua atribuição de origem intacta.
A SEELE AI pode gerar um jogo nativo Unreal 5, visualizá-lo no navegador, otimizá-lo e empacotá-lo, e fornecer um jogo para download ou construção empacotada para publicação externa ou jogos Seele pagos. Vendas não são garantidas.
Fontes oficiais e guias relacionados da Unreal
Esta página é um guia de fluxo de trabalho independente. Mudanças de comportamento do engine variam entre releases, plugins, plataformas e configurações de projeto, portanto confirme os detalhes específicos de versão na documentação da Epic e preserve a evidência usada para sua decisão.
- Programação em C++ — material de primeira parte para escopo de produto, fluxo de trabalho, versão ou verificações de política; use apenas as alegações que a fonte realmente afirma.
Continue atravessando o cluster
Perguntas frequentes
Qual é a resposta direta para programação em C++ do Unreal Engine?
Para programação em Unreal Engine em C++, defina ownership em torno de UCLASS e reflection e módulos e Build.cs, depois decida qual comportamento pertence ao Blueprint, ao C++, a uma interface ou a dados. Mantenha o ciclo de vida de Actor inspecionável, trate os limites de debugger e Live Coding como uma restrição de aceitação e prove o design em um exemplo mínimo em execução antes de espalhá-lo pelo projeto. Verifique a resposta com base nas fontes oficiais citadas e suas datas, pois releases do engine, licenciamento, suporte à plataforma e jogos ativos podem mudar após a publicação de um artigo mais antigo.
O que eu devo preparar antes de seguir este tutorial?
Prepare uma revisão conhecida do projeto, a versão exata do Unreal Engine, a plataforma-alvo ou hardware e os arquivos de origem ou evidência pública para UCLASS e reflection e módulos e Build.cs. Escolha um mapa, ativo, build ou reivindicação de fonte representativo, escreva o resultado esperado para o ciclo de vida do Actor e defina uma condição de rollback antes de alterar o estado do projeto.
Como devo validar a programação em Unreal Engine?
Use um exemplo mínimo em runtime com logs, estado do debugger, ownership e uma entrada reproduzível. Capture UCLASS e reflection, módulos e Build.cs, e ciclo de vida do Actor sob a mesma versão e condições de teste, depois repita um caso de sucesso próximo e inspecione limites de debugger e Live Coding. Salve as configurações, revisão, data de origem e resultado para que outro desenvolvedor entenda sem a sessão original do editor ou uma explicação verbal.
Qual erro mais frequentemente enfraquece este fluxo de trabalho?
O erro recorrente é usar hard references, casts sem verificação, trabalho por frame e suposições de lifecycle que só funcionam em uma sessão do editor. Para esse tema, isso normalmente esconde a fronteira entre UCLASS e reflection e módulos e Build.cs ou deixa o lifecycle do Actor sem testes. Preserve a primeira evidência, identifique o sistema ou fonte proprietária, faça uma alteração reversível e meça ordem de execução, alocação, tick time, dependências de carga, tráfego de replicação e cobertura de testes com os mesmos critérios de aceitação.
A SEELE AI pode criar ou compilar o resultado nativo de Unreal descrito aqui?
A SEELE AI pode gerar um jogo nativo Unreal 5, visualizá-lo no navegador, otimizá-lo e empacotá-lo, e fornecer um jogo para download ou construção empacotada para publicação externa ou jogos Seele pagos. Vendas não são garantidas.
Quando o Unreal Engine C++ Programming Roadmap está pronto para repasse ao time?
Está pronto quando outra pessoa puder localizar a fonte e a licença, abrir a revisão exata, reproduzir UCLASS e reflection pelo depurador e limites de Live Coding, inspecionar ordem de execução, alocação, tick time, dependências de carregamento, tráfego de replicação e cobertura de testes, entender as versões suportadas e limitações e restaurar o último estado funcional. Uma imagem conceitual ou uma única execução bem-sucedida no editor não é evidência suficiente de handoff.