Confronto dei GameObjects con gli UObjects e gli attori
In Unity, i GameObjects rappresentano oggetti del gioco programmabili. Un GameObject non compie molte azioni da solo; agisce da contenitore per i Componenti, come Luce e Mesh, che forniscono funzionalità specifiche. Ogni GameObject ha un componente di trasformazione allegato per rappresentare la posizione e l'orientamento nel mondo.
In Unreal Engine (UE), gli UObjects rappresentano oggetti programmabili nel mondo del gioco. La classe UObject funziona da classe base condivisa per la maggior parte delle classi in UE. Tale approccio supporta il Sistema di riflessione di Unreal Engine, che fornisce una raccolta automatica di spazzatura e altri vantaggi.
Attore, sottoclasse di UObject, è l'equivalente del GameObject di Unity. Gli attori supportano il Sistema di componenti e le trasformazioni di UE (USceneComponent) dunque puoi posizionarli nel mondo. Tuttavia, una differenza sostanziale rispetto a Unity è che puoi estendere direttamente la funzionalità di un attore anziché affidarti esclusivamente ai componenti.
Se l'implementazione del tuo oggetto non richiede la funzionalità aggiuntiva di una delle sottoclassi di UObject, puoi estendere UObject direttamente per una implementazione più leggera. Per ulteriori informazioni su UObjects, vedi Oggetti.
Confronto dei sistemi di componenti
In modo simile a Unity, UE ha un sistema di componenti che puoi utilizzare per allegare una funzionalità riutilizzabile agli oggetti del gioco. Puoi creare i tuoi componenti personali da zero o estendendo uno dei tanti forniti con UE. Prima di procedere, vale la pena comprendere i seguenti tipi di componente essenziale:
Componente attore - Il tipo di componente di base allegato a un attore. I componenti attore non sono dotati di trasformazioni, quindi non hanno una collocazione fisica nel mondo. Sono utili per comportamenti astratti come la gestione dell'inventario o di attributi.
Componente di scena - Tipo di componente attore che aggiunge una trasformazione per il posizionamento del mondo. I componenti di scena non hanno rappresentazioni visive, perciò sono adatti per comportamenti non visivi basati sulla posizione, come forze fisiche, telecamere o audio.
Componente primitivo - Tipo di componente di scena che aggiunge una rappresentazione visiva e fisica. Sono adatti per il rendering di elementi visivi e volumi di collisione.
In Unity, puoi creare GameObjects complessi con relazione genitore-figlio. Per esempio, un oggetto genitore può avere più oggetti figlio con le proprie mesh, i propri collisori o comportamenti.
In UE, puoi compilare attori con una gerarchia simile utilizzando i componenti anziché gli attori figlio per ridurre le prestazioni e i costi in termini di memoria.
Per informazioni più dettagliate sul sistema di componenti di UE, vedi Componenti.
Confronto di Update() e Tick()
In Unity, gli aggiornamenti dei componenti sono guidati principalmente da Update() e FixedUpdate() in MonoBehaviour.
In UE, gli attori utilizzano Tick() (attivato per impostazione predefinita) e i componenti eventualmente utilizzano TickComponent() (disattivato per impostazione predefinita).
Per impostazione predefinita, il ticking avviene una volta per frame. Puoi specificare un altro intervallo di ticking assegnando un gruppo di tick, ad esempio TG_DuringPhysics. Puoi anche specificare una dipendenza di tick per bloccare i tick finché non è conclusa un'altra funzione di tick indicata.
Per informazioni più dettagliate, consulta le risorse seguenti:
Framework di gioco
Il Framework di gioco di Unreal Engine è una raccolta di classi, incusi attori e componenti, che fornisce una base modulare su cui compilare le tue esperienze di gameplay.
Confrontando l'implementazione del gameplay in Unity con l'utilizzo del Framework di gioco, ci sono più differenze che somiglianze. Per questo consigliamo di esaminare la sezione Framework di gioco per saperne di più su come i concetti espressi nel presente documento rientrano nel framework. In aggiunta, le sezioni riportate di seguito riguardano alcune importanti classi di framework di alto livello.
Sottoclassi UObject importanti
Livello - Contiene un set di oggetti di gioco che compongono un livello nel gioco. I livelli sono simili alle scene in Unity.
Asset di dati - Usato per definire gli asset che memorizzano i dati del tuo gioco. Gli asset di dati sono simili agli ScriptableObjects in Unity.
Sottoclassi di attori importanti
Pedina - Funge da "agente" nel mondo. Un Controller può possedere una Pedina per assumerne il controllo.
Personaggio - Tipo di Pedina che rappresenta un personaggio stile umanoide e fornisce movimenti di base e funzionalità di collisione.
Controller - Responsabile della direzione delle Pedine dopo esserne entrato in possesso.
PlayerController - Usato per fornire il comando locale di un giocatore umano di una Pedina.
AIController - Usato per comandare una Pedina con l'intelligenza artificiale.
Modalità di gioco - Attore gestore che definisce e configura il gioco.
Stato del gioco - Contiene le informazioni sullo stato del gioco.
Stato del giocatore - Contiene informazioni sullo stato di un giocatore. Lo Stato del gioco traccia tutti gli stati di un giocatore all'interno di un array.