Para quem programa em C++
Para usar o script de Blueprint, você só precisa da Unreal Engine. Todas as funcionalidades necessárias estão integradas.
Para programar em C++, baixe o Visual Studio no Windows ou instale o Xcode no macOS. Quando você cria pela primeira vez um projeto em C++ na Unreal Engine (ou adiciona código C++ a um projeto existente), a Unreal Engine cria automaticamente arquivos de projeto do Visual Studio para você.
Existem duas maneiras de acessar o Visual Studio no seu projeto da Unreal Engine:
-
No Navegador de Conteúdo, clique duas vezes em uma classe C++ para abri-la no Visual Studio.
-
No menu principal, acesse Ferramentas > Open Visual Studio (Abrir Visual Studio). Essa opção só aparecerá se o projeto contiver pelo menos uma classe C++.
Uma diferença importante na Unreal Engine: às vezes, você precisará atualizar manualmente os arquivos do projeto do Visual Studio (por exemplo, após baixar uma nova versão da Unreal Engine ou ao fazer alterações manualmente nos locais dos arquivos de origem no disco). Há duas maneiras de fazer isso:
-
No menu principal da Unreal Engine, acesse Ferramentas > Refresh Visual Studio Project (Atualizar projeto do Visual Studio).
-
Clique com o botão direito do mouse no arquivo .uproject no diretório do seu projeto e selecione Generate Visual Studio project files (Gerar arquivos de projeto do Visual Studio).
Como criar funções de eventos (Start, Update etc.)
Se você já trabalhou com MonoBehaviors, deve conhecer métodos como Start, Update e OnDestroy. Veja abaixo uma comparação entre um comportamento do Unity e seu equivalente para atores e componentes da Unreal Engine.
No Unity, você pode ter um componente simples parecido com este:
public class MyComponent : MonoBehaviour
{
void Start() {}
void OnDestroy() {}
void Update() {}
}
Na Unreal Engine, você pode escrever código no próprio ator, em vez de apenas programar novos tipos de componente. Inclusive, isso é muito comum e útil.
Os atores da Unreal Engine têm um conjunto de métodos semelhante às funções Start, OnDestroy e Update do Unity. Eles são mostrados abaixo:
C++
UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()
// Chamada no início do jogo
void BeginPlay();
// Chamada na destruição
void EndPlay(const EEndPlayReason::Type EndPlayReason);
// Chamada a cada quadro para atualizar este ator
void Tick(float DeltaSeconds);
};
Blueprint
Os componentes da Unreal Engine contêm diferentes funções. Veja um exemplo básico:
C++
UCLASS()
class UMyComponent : public UActorComponent
{
GENERATED_BODY()
// Chamada após a criação do ator controlador
void InitializeComponent();
// Chamada quando o componente ou o ator controlador está sendo destruído
void UninitializeComponent();
// A versão do componente de tique
void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction);
};
Blueprint
Lembre-se de que, na Unreal Engine, você deve chamar a versão do método da classe pai.
Por exemplo, em C# para Unity, isso seria chamado de base.Update(), mas, em C# para Unreal Engine, você usará Super::TickComponent():
void UMyComponent::TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
// Elementos de tiques personalizados aqui
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
}
Em C++, algumas classes usam o prefixo A, enquanto outras usam o prefixo U. A indica uma subclasse de ator, enquanto U indica uma subclasse de objeto. Outro prefixo comum é F, que é usado para a maioria das estruturas de dados simples e classes que não são UObject.