Para programadores C++
Para usar la secuenciación de comandos de Blueprint, solo necesitas Unreal Engine.Todas las funciones que necesitas están integradas.
Para escribir el código en C++, descarga Visual Studio en Windows, o Xcode en macOS. Al crear por primera vez un nuevo proyecto C++ en Unreal Engine (o añadir un código C++ a un proyecto existente), Unreal Engine creará automáticamente archivos de proyecto de Visual Studio para ti.
Hay dos maneras de acceder a Visual Studio desde el proyecto de Unreal Engine:
-
En el explorador de contenido, haz doble clic en una clase C++ para abrirla en Visual Studio.
-
Desde el menú principal, ve a Herramientas > Abrir Visual Studio. Esta opción solo aparece si tu proyecto contiene al menos una clase C++.
Una diferencia importante en Unreal Engine: algunas veces deberás actualizar los archivos de proyecto de Visual Studio manualmente (por ejemplo, luego de descargar una nueva versión de Unreal Engine, o cuando realices cambios manuales en las ubicaciones de archivos fuente en el disco). Puedes hacer esto de dos maneras:
-
Desde el menú principal de Unreal Engine, ve a Herramientas > Actualizar proyecto de Visual Studio.
-
Haz clic derecho en el archivo .uproject en el directorio del proyecto y selecciona Generar archivos de proyecto de Visual Studio.
Escritura de funciones de evento (iniciar, actualizar, etc.)
Si ya trabajaste previamente con MonoBehaviors, puede que conozcas métodos como Start, Update y OnDestroy. Debajo encontrarás una comparación entre el comportamiento de Unity y su equivalente para componentes y actores de Unreal Engine.
En Unity, podrías tener un componente sencillo que se ve así:
public class MyComponent : MonoBehaviour
{
void Start()
void OnDestroy() {}
void Update() {}
}
En Unreal Engine, puedes escribir un código en el propio actor en lugar de simplemente programar nuevos tipos de componente. De hecho, esto es muy común y útil.
Los actores de Unreal Engine tienen un conjunto de métodos similares para las funciones de Start, OnDestroy y Update de Unity. Estos se muestran a continuación:
C++
UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()
// Se llama al inicio del juego.
void BeginPlay();
// Se llama al destruirse.
void EndPlay(const EEndPlayReason::Type EndPlayReason);
// Se llama a cada fotograma para actualizar este actor.
void Tick(float DeltaSeconds);
};
Blueprint
Los componentes en Unreal Engine contienen funciones diferentes. Aquí hay un ejemplo básico:
C++
UCLASS()
class UMyComponent : public UActorComponent
{
GENERATED_BODY()
// Se llama después de la creación del actor propietario.
void InitializeComponent();
// Se llama cuando el componente o el actor propietario se están destruyendo.
void UninitializeComponent();
// Versión de componente de Tic
void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction);
};
Blueprint
Recuerde que, en Unreal Engine, debes llamar la versión de clase base del método.
Por ejemplo, en Unity C# esto se llamaría base.Update(), pero en Unreal Engine C++ usará Super::TickComponent():
void UMyComponent::TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
// Personaliza los materiales de tic aquí
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
}
En C++, algunas clases usan el prefijo A, mientras que otros usan el prefijo U. A indica una subclase de actor, mientras que U indica una subclase de objeto. Otro prefijo común es F, que se usa para la mayoría de estructuras de datos y que no son de UObject.