Comparación de objetos de juego con UObjects y actores
En Unity, GameObjects representa objetos en el juego programables. Un GameObject no hace mucho por sí solo; actúa como un contenedor para componentes, como luz y malla, que proporciona funcionalidades específicas. Cada GameObject tiene un componente de transformación unido a la posición de representación y orientación en el entorno.
En Unreal Engine (UE), UObjects representa objetos programables en tu entorno de juego. Las funciones de clase de UObjects como una clase base compartida para la mayoría de las clases en UE. Este enfoque es compatible con el Sistema de reflexión de Unreal Engine, que proporciona una recolección automática de basura y otros beneficios.
Actor, una subclase de UObject, es un equivalente cercano al objeto de juego de Unity. Actores es compatible con el Sistema de componente de UE y transforma (USceneComponent) así puedes ubicarlos en el entorno. Sin embargo, una diferencia clave comparado con Unity es que puedes extender la funcionalidad de un actor directamente en lugar de basarse en componentes exclusivamente.
Si tu implementación de objeto no necesita la funcionalidad adicional de una de las subclases de UObject, puedes extender directamente UObject para una implementación más liviana. Para obtener más información detallada sobre UObjects, consulta Objetos.
Comparación de sistemas de componente
Similar a Unity, UE tiene un sistema de componente que puedes usar para unir funcionalidad reutilizable a tus objetos de juego. Puedes crear tus propios componentes desde cero o al extender uno de los muchos que proporciona UE. Antes de hacerlo, vale la pena entender los siguientes tipos de componente de núcleo:
Componente del actor: el tipo de componente de base que se une a un actor. El componente del actor no tiene transformaciones, entonces no tienen una ubicación física en el entorno. Son útiles para comportamientos abstracto, como un inventario o un manejo de atributos.
Componente de escena: un tipo de componente de actor que añade una transformación para el posicionamiento del entorno. El componente de escena no tiene representaciones visuales, por eso son adecuadas para comportamientos basados en ubicaciones no visuales, como audio, cámaras o fuerzas físicas.
Componente primitivo: un tipo de componente de escena que añade una representación física y visual. Son adecuados para renderizar elementos visuales y volúmenes de colisión.
En Unity, puedes crear objetos de juego complejos con una relación de base-derivado. Por ejemplo, un objeto de base puede tener múltiples objetos derivados con sus propias mallas, colisionadores o comportamientos.
En UE, puedes construir actores con una jerarquía similar con componentes en lugar de actores derivados para reducir costos de memoria y rendimiento.
Para obtener más información detallada sobre el sistema de componente de UE, consulta Components (Componentes).
Comparación de Update() y Tick()
En Unity, las actualizaciones de componente se conducen principalmente por Update() y FixedUpdate() en MonoBehaviour.
En UE, los actores usan Tic() (habilitado por defecto), y los componentes usan opcionalmente TickComponent() (deshabilitado por defecto).
Por defecto, la ejecución por tic sucede una vez por fotograma. Puedes especificar otro intervalo de ejecución por tic mediante la asignación de un grupo de tic, como un TG_DuringPhysics. Puedes también especificar una dependencia de tic para evitar tics hasta que otra función especificada se complete.
Para obtener más información detallada, consulte los siguientes recursos:
Marco de jugabilidad
El marco de jugabilidad de Unreal Engine es una colección de clases, incluidos los actores y componentes, que te ofrece una base modular sobre la cual compilar tus experiencias de jugabilidad.
Si comparas la implementación de jugabilidad en Unity con el uso del marco de jugabilidad de UE, hay más diferencias que similitudes. Por lo tanto, te recomendamos que revises la sección de marco de jugabilidad para aprender más sobre cómo los conceptos cubiertos en este documento encaja en el marco. Además, las secciones que aparecen debajo cubren algunas clases de marco importantes en un nivel alto.
Subclases importantes de UObject
Nivel: contiene un conjunto de objetos de juego que inventan un nivel en tu juego. Los niveles son similares a las escenas en Unity.
Recurso de datos: usado para definir recursos que almacenan datos para tu juego. Los recursos de datos son similares a los objetos programables en Unity.
Subclases importantes de actor
Peón: actúa como un "agente" dentro del entorno. Un controlador puede poseer un peón para tomar control de él.
Personaje: un tipo de peón que representa un personaje de estilo humanoide y proporciona funcionalidad de colisión y movimiento básico.
Controlador: responsable de dirigir peones luego de poseerlos.
PlayerController: usado para proporcionar un control de jugador humano local a un peón.
Controlador de IA: usado para controlar un peón con inteligencia artificial.
Modo de juego: un actor gestor que define y configura tu juego.
Estado de juego: contiene la información de estado del juego.
Estado del jugador: contiene la información de estado del jugador. El estado de juego rastrea todos los estados del jugador dentro de una matriz.