Práticas recomendadas geraisGeneral best practices

Veja a seguir algumas práticas recomendadas gerais que recomendamos que todos os desenvolvedores sigam ao criar um projeto do Unreal Engine para a Realidade Misturada.The following are some general best practices we recommend all developers follow when creating an Unreal Engine project for Mixed Reality.

ConstrutoresConstructors

Se você precisar do equivalente de um "construtor" nos blueprints, use o script de construção do Unreal.If you need the equivalent of a "constructor" in blueprints, use Unreals' construction script. A principal vantagem de usar eventos "BeginPlay" é que o script de construtor também é executado no "editor".The primary advantage over using "BeginPlay" events is the constructor script runs in the "editor" as well. Na maioria das vezes, os valores podem ser armazenados em cache diretamente no início ou mesmo no tempo de compilação.Most of the time the values can be cached right at the start or even at compile time.

Observação

Você pode encontrar mais informações de suporte para scripts de Construção na visão geral das extensões do editor.You can find more supporting information for Construction scripts in our editor extensions overview.

Botões e texturas em 3D3D buttons and textures

É natural pensar no desempenho ao criar ou planejar o uso de botões em 3D em aplicativos de realidade misturada.It's natural to think about performance when creating or planning to use 3D buttons in mixed reality applications. No entanto, nem tudo precisa ser feito de malhas para ser percebido como 3D.However, not everything has to be made from meshes to be perceived as 3D. Você tem a opção de usar o Paper2D com texturas cuidadosamente criadas para obter a aparência 3D.You have the option of using Paper2D with carefully crafted textures to get that 3D look. Isso funciona muito bem para botões que "parecem" 3D, mas são apenas imagens com Photoshop em um quadrupleto.This works really well for buttons that "seem" 3D, but are just photoshopped images on a quad. Uma versão sofisticada deles é chamada de sprite.A fancy version of these is called a sprite.

VariantesVariants

Use as Variantes do Unreal em cenários em que você está criando uma cena com várias configurações de objeto no runtime.Use Unreal Variants in scenarios where you're creating a scene with multiple object configurations at runtime. As variações podem incluir a alteração de materiais ou malhas.Variations can include changing materials or meshes.

AnimaçãoAnimation

Aproveite o Componente spline (não o componente de "malha" spline) e os Nós da linha do tempo se você estiver criando muitas "animações interativas".Take advantage of the Spline component (not the Spline "Mesh" Component) and Timeline nodes if you're creating lots of "interactable animations".

ComunicaçõesCommunications

Use um Blueprint de Nível se você estiver tendo problemas para localizar objetos dinamicamente ou estiver usando muita largura de banda para se comunicar entre vários atores e blueprints.Use a Level Blueprint if you're having trouble dynamically finding objects or using too much bandwidth to communicate between multiple actors and blueprints. Lembre-se de que o Unreal Engine 4 não é como o Unity, nem tudo precisa estar dentro de um componente.Remember, Unreal Engine 4 isn't like Unity, not everything has to be inside a component. Blueprints de Nível são um modo perfeitamente válido e recomendado de simplificar a comunicação entre vários atores.Level Blueprints are a perfectly valid and recommended way of simplifying the communication between multiple actors. As referências de objeto podem até mesmo ser armazenadas em cache na inicialização no OnBeginPlay do Blueprint de Nível.Object references can even be "cached" at startup in the Level Blueprint's OnBeginPlay.

Estado globalGlobal state

Geralmente, você precisará armazenar o estado específico de nível, como pontuação, dados de nível, informações específicas do player ou qualquer outra coisa que não pertença a um objeto específico.You'll often need to store level-specific state like score, level data, player-specific information, or anything else that doesn't quite belong to a particular object. Não ignore o GameMode.Don't overlook the GameMode. A maioria das pessoas esquece que ele existe, mas o GameMode pode ser criado por nível e conter dados específicos para cada nível.Most people forget that it exists, but the GameMode can be created per level, and contain data specific to each level.

Como otimizar blueprintsOptimizing Blueprints

Se você achar que os seus blueprints estão muito lentos, deixe o Unreal torná-los "nativos" antes de precisar reescrever o código em c++.If you're finding your blueprints to be too slow, let Unreal "nativize" your blueprints before resorting to rewriting the code in c++. Tente usar a nativização automática antes de criar a própria solução personalizada.Try using the automatic nativization before creating your own custom solution.

A configuração de blueprints com o método de nativização de blueprint com inclusive destacado