GameObject’ler ile UObject ve Aktörleri Karşılaştırma
Unity’de GameObject’ler, programlanabilir oyun içi objeleri temsil eder. GameObject tek başına önemli bir işlev gerçekleştirmez; belirli işlevsellikler sağlayan ışık ve örgü gibi bileşenler için bir kapsayıcı görevi görür. Her GameObject’in dünyadaki konumunu ve yönelimini temsil eden bir dönüşüm bileşeni vardır.
Unreal Engine’da (UE), UObject’ler oyununuzun dünyasındaki programlanabilir objeleri temsil eder. UObject sınıfı, UE’deki çoğu sınıf için paylaşılan bir temel sınıf işlevi görür. Bu yaklaşım, otomatik çöp toplama ve başka avantajlar sunan Unreal Engine Yansıma Sistemi’ni destekler.
UObject’in bir alt sınıfı olan aktör, Unity’nin GameObject sınıfının yakın bir eşdeğeridir. Aktörler, dünyaya yerleştirebilmeniz için UE’nin Bileşen Sistemi’ni ve dönüşümlerini (USceneComponent) destekler. Ancak Unity ile karşılaştırıldığında en önemli farklardan biri, yalnızca bileşenleri temel almak yerine bir aktörün işlevselliğini doğrudan genişletebilmenizdir.
Obje uygulamanız UObject’in alt sınıflarından birinin ek işlevselliğini gerektirmiyorsa daha hafif bir uygulama için UObject’i doğrudan genişletebilirsiniz. UObjects hakkında daha fazla bilgi edinmek için Objeler bölümüne bakın.
Bileşen Sistemlerini Karşılaştırma
Unity’ye benzer şekilde UE’de oyun objelerinize yeniden kullanılabilir işlevsellikler eklemek için kullanabileceğiniz bir bileşen sistemi bulunmaktadır. Kendi bileşenlerinizi sıfırdan oluşturabilir veya UE ile birlikte sağlanan çok sayıda bileşenden birini genişletebilirsiniz. Bunu yapmadan önce, aşağıdaki temel bileşen türlerini anlamak yararlı olacaktır:
Aktör Bileşeni: Bir Aktöre bağlanan temel bileşen türüdür. Aktör bileşenleri dönüşümlere sahip değildir, dolayısıyla dünyada fiziksel konumları yoktur. Çanta veya öznitelik yönetimi gibi soyut davranışlarda kullanışlıdır.
Sahne Bileşeni: Dünya konumlandırması için dönüşüm ekleyen bir aktör bileşeni türüdür. Sahne bileşenleri, görsel temsillere sahip olmadığından fiziksel kuvvetler, kameralar veya ses gibi görsel olmayan konuma dayalı davranışlar için uygundur.
Primitif Bileşen: Görsel ve fiziksel temsil ekleyen bir sahne bileşeni türüdür. Görsel elemanların ve çarpışma etki aktörlerinin işlenmesi için uygundur.
Unity’de üst-alt ilişkisine sahip karmaşık GameObject’ler oluşturabilirsiniz. Örneğin, bir üst objenin, kendi örgüleri, çarpıştırıcıları veya davranışları olan birden fazla alt objesi olabilir.
UE’de, performansı ve bellek maliyetlerini azaltmak için alt aktörler yerine bileşenleri kullanarak benzer bir hiyerarşiye sahip aktörler oluşturabilirsiniz.
UE’nin bileşen sistemi hakkında daha ayrıntılı bilgi için Bileşenler kısmına bakın
Update() ile Tick() Fonksiyonlarını Karşılaştırma
Unity’de bileşen güncellemeleri, öncelikle MonoBehaviour’daki Update() ve FixedUpdate() tarafından yönlendirilir.
UE’de aktörler, Tick() (varsayılan olarak etkindir) fonksiyonunu kullanır, bileşenler ise isteğe bağlı olarak TickComponent() (varsayılan olarak devre dışıdır) fonksiyonunu kullanır.
Varsayılan olarak, tikleme kare başına bir kez gerçekleşir. TG_DuringPhysics gibi bir tik grubu atayarak başka bir tikleme aralığı belirleyebilirsiniz. Ayrıca, belirlenen başka bir tik fonksiyonu tamamlanana kadar tikleri önlemek için bir tik bağımlılığı da belirtebilirsiniz.
Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakabilirsiniz:
Oynanış Altyapısı
Unreal Engine’in Oynanış Altyapısı, oynanış deneyimlerinizi oluşturabileceğiniz modüler bir temel sunan aktörler ve bileşenleri içeren bir sınıf koleksiyonudur.
Unity’deki oynanışı UE Oynanış Altyapısı’nı kullanmakla karşılaştırırsanız benzerliklerden çok farklılıklar görürsünüz. Bu nedenle, bu belgede ele alınan kavramların altyapıya nasıl uyduğuna dair daha fazla bilgi edinmek için Oynanış Altyapısı bölümünü incelemenizi öneririz. Ayrıca aşağıdaki bölümlerde bazı önemli altyapı sınıfları üst düzeyde ele alınmaktadır.
Önemli UObject Alt Sınıfları
Bölüm: Oyununuzda bölümü oluşturan oyun objeleri setini içerir. Bölümler, Unity’deki sahnelerle benzerdir.
Veri Öğesi: Oyununuz için veri depolayan öğeleri tanımlamak için kullanılır. Veri öğeleri, Unity’deki ScriptableObject’ler ile benzerdir.
Önemli Aktör Alt Sınıfları
Piyon: Dünya içerisinde bir “aracı” olarak hareket eder. Denetleyici, bir piyonun kontrolünü ele geçirmek için ona “sahip olabilir”.
Karakter: İnsansı bir karakteri temsil eden ve temel hareket ve çarpışma işlevselliği sağlayan piyon türüdür.
Denetleyici: Piyonlara sahip olduktan sonra onları yönlendirmekten sorumludur.
PlayerController: Piyonun yerel bir insan oyuncu tarafından kontrol edilmesi için kullanılır.
AIController: Yapay zekâ ile piyonu kontrol etmek için kullanılır.
Oyun Modu: Oyununuzu tanımlayan ve ayarlayan bir yönetici aktördür.
Oyun Durumu: Oyunun durum bilgilerini içerir.
Oyuncu Durumu: Oyuncunun durum bilgilerini içerir. Oyun durumu, bir dizi içindeki tüm oyuncu durumlarını izler.