CodeBlanks Logo Icon CodeBlanks

IComponentData

IComponentData ile bileşen tanımlamayı öğrenirsin.

IComponentData nedir?

IComponentData, Unity ECS mimarisinde veri bileşenleri oluşturmak için kullanılan bir arayüzdür. Bu arayüzü uygulayan yapılar genellikle struct olarak tanımlanır ve Entity nesnelerine veri eklemek için kullanılır. Örneğin bir Position bileşeni, nesnenin koordinatlarını saklayabilir.

using Unity.Entities;

public struct Position : IComponentData
{
    public float X;
    public float Y;
}

Bu bileşen yalnızca veri tutar; veriyi işleyen mantık ayrı bir System içerisinde bulunur.

Bir veri bileşeni oluşturma

Bir ECS bileşeni oluşturmak için Unity.Entities ad alanını projene dahil et. Ardından struct tanımlayıp IComponentData arayüzünü uygula. Bileşenin içine oyun nesnesine ait sayısal verileri yerleştirebilirsin.

using Unity.Entities;

public struct Health : IComponentData
{
    public int Value;
}

Health bileşeni, bir Entity nesnesinin sağlık değerini saklamak için kullanılabilir.

Uygulama Skor bileşeni oluştur

Score adında bir ECS bileşeni oluştur. Yapı IComponentData arayüzünü uygulamalı ve Value adında bir int alanı içermeli. Gerekli Unity.Entities ad alanını da ekle. Ayrıca başlangıç skorunu konsola yazdıran statik bir metot tanımla.

Başlangıç kodu

Player.cs
// Score veri bileşenini tanımla
// IComponentData arayüzünü uygula
// Value alanını ekle
// Başlangıç skorunu yazdıran metodu tanımla

Örnek çözüm

Player.cs
using Unity.Entities;
using UnityEngine;

public struct Score : IComponentData
{
    public int Value;

    public static void PrintInitial()
    {
        Debug.Log("Score: " + 0);
    }
}

Beklenen çıktı

Score: 0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 ECS veri bileşeni oluştururken hangi C# türü kullanılır?

  • delegate
  • struct Doğru cevap
  • enum
  • interface

Açıklama: IComponentData uygulayan ECS veri bileşenleri struct olarak tanımlanır.

2 Health bileşenini tamamla

Soru
public struct Health : ____
{
    public int Value;
}
Cevap
public struct Health : IComponentData
{
    public int Value;
}

Açıklama: IComponentData, Health yapısının ECS veri bileşeni olarak kullanılmasını sağlar.

3 IComponentData yapısı

Kavram Anlamı
IComponentData ECS bileşen arayüzü
struct Değer türünde yapı tanımlar
int Value Tam sayı verisi tutar
Unity.Entities ECS türlerini içerir

Uzman bölümündeki tüm dersler