Oyun Geliştirme
SystemBase
SystemBase ile sistem mantığını öğrenirsin.
SystemBase nedir?
SystemBase, Unity ECS içerisinde bileşen verilerini işleyen sistemler oluşturmak için kullanılan temel sınıflardan biridir. Bir sistem, belirli bileşenlere sahip Entity nesnelerini bulup onların verileri üzerinde işlem yapabilir. Bu işlemler genellikle OnUpdate metodu içerisinde gerçekleştirilir.
using Unity.Entities;
public partial class HealthSystem : SystemBase
{
protected override void OnUpdate()
{
// Sistem işlemleri
}
}
SystemBase sınıfını kullanırken sistemin Unity ECS tarafından tanınması için gerekli yapıyı oluşturmalısın.
SystemBase ile veri işleme
Bir SystemBase sınıfı, belirli bileşenleri taşıyan Entity nesnelerini sorgulayabilir. Örneğin Entities.ForEach kullanarak Health bileşenine sahip nesnelerin sağlık değerlerini değiştirebilirsin. OnUpdate metodu, sistemin her güncelleme döngüsünde çalışacak işlemleri barındırır.
protected override void OnUpdate()
{
Entities.ForEach((ref Health health) =>
{
health.Value += 1;
}).Schedule();
}
Bu örnekte Health bileşenine sahip nesnelerin değerleri artırılır. Entities.ForEach yaklaşımı kullanılan Entities sürümüne bağlıdır.
Uygulama Skor değerini sistemle artır
ScoreSystem adında bir SystemBase sınıfı oluştur. OnUpdate metodunda Entities.ForEach kullanarak Score bileşenine sahip nesnelerin Value değerini bir artır ve işlemi Schedule ile zamanla. İşlem sırasında skor değerini önce 1 olarak ayarla ve güncelleme mesajını konsola yazdır. Score bileşeninin daha önce tanımlandığını varsay.
Örnek çözümü göster
using Unity.Entities;
using UnityEngine;
public partial class ScoreSystem : SystemBase
{
protected override void OnUpdate()
{
Entities.ForEach((ref Score score) =>
{
score.Value = 1;
score.Value += 1;
}).Schedule();
Debug.Log("Score updated");
}
}
Kendini test et
-
SystemBase sınıfında sistemin güncelleme işlemleri hangi metotta gerçekleştirilir?
- OnDisable
- Awake
- OnUpdate
- Start
Cevabı göster
OnUpdate — OnUpdate, SystemBase sınıfının sistem güncellemesi sırasında çağrılan metodudur.
-
Sistem sınıfının temelini seç
public partial class MovementSystem : ____
Cevabı göster
public partial class MovementSystem : SystemBase
-
SystemBase öğeleri
- SystemBase
- ECS sistem sınıfının temelidir
- OnUpdate
- Sistem güncellemesini yürütür
- Entities.ForEach
- Bileşen taşıyan nesneleri işler
- Schedule
- İşlemi zamanlayarak çalıştırır
Sıradaki ders: Burst compiler