Unreal Engine'de UObject, AActor ve UActorComponent arasındaki fark nedir?

Cevap

UObject Unreal'ın tüm yönetilen nesnelerinin temel sınıfıdır; reflection, garbage collection, serileştirme ve editör entegrasyonu buradan gelir. AActor, dünyaya (level) yerleştirilebilen, transform'u olabilen ve replicate edilebilen bir UObject'tir. UActorComponent ise bir Actor'a eklenen, yeniden kullanılabilir davranış parçasıdır.

SınıfDünyada var mı?TransformTipik kullanım
UObjectHayırYokVeri, yönetici, item tanımı
AActorEvet (SpawnActor)RootComponent üzerindenKarakter, kapı, mermi
UActorComponentActor'a bağlıYokHealth, Inventory mantığı
USceneComponentActor'a bağlıVarMesh, kamera, collision
  • Actor'ların konumu aslında RootComponent'ın (bir USceneComponent) transform'udur.
  • UObject NewObject<T>() ile, Actor GetWorld()->SpawnActor<T>() ile, component ise constructor'da CreateDefaultSubobject<T>() ile oluşturulur.
  • Prefix kuralı: U UObject türevleri, A Actor türevleri, F struct/düz C++ tipleri, I interface, E enum, T template.
AMyCharacter::AMyCharacter()
{
    Health = CreateDefaultSubobject<UHealthComponent>(TEXT("Health"));
    Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
    Camera->SetupAttachment(RootComponent);
}

Tasarım ilkesi: davranışı devasa Actor alt sınıflarına değil, component'lere bölerek kompozisyonu tercih edin.

  1. Oyun motorlarında neden custom memory allocator kullanılır? Linear (arena), pool ve stack allocator nasıl çalışır?ZorUnreal & C++Game Dev
  2. Cache-friendly veri yapısı ne demektir? Array of Structs (AoS) ile Struct of Arrays (SoA) farkı nedir?ZorUnreal & C++Game Dev
  3. C++'ta move semantics nedir? Aşağıdaki kodda hangi constructor'lar çağrılır?ZorUnreal & C++Game Dev
  4. C++'ta virtual fonksiyonlar ve vtable nasıl çalışır? Destructor neden virtual olmalıdır?OrtaUnreal & C++Game Dev
  5. Unreal'da replication nasıl çalışır? Replicated property, RepNotify ve RPC türleri arasındaki fark nedir?ZorUnreal & C++Game Dev
  6. Unreal'ın Gameplay Framework'ünde GameMode, GameState, PlayerController, PlayerState ve Pawn'ın rolleri nelerdir?OrtaUnreal & C++Game Dev

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle