UObject
Unreal Engineのクラス階層の根。もともと備えていないC++に、リフレクション、ガベージコレクション、シリアライズを後付けする。
C++にはリフレクションもガベージコレクションもないため、Unrealは独自に作り上げた。クラスにはUCLASS、UPROPERTY、UFUNCTIONといったマクロを付け、コンパイラより先にUnreal Header Toolがソースを読んでメタデータを生成する。これにより、プロパティをエディタに表示し、ディスクに保存し、ネットワークでレプリケートし、Blueprintから呼び出せるようになる。
コレクターはマーク&スイープ方式で、自分が知っているポインタしか辿らない。UPROPERTYのないUObjectへの生ポインタは見えないため、ポインタがまだ使われているのにオブジェクトが回収されうる。Unrealのコードで最もよくあるクラッシュの原因の一つだ。レベルに配置できるもの全般を表すAActorも、ここから継承している。