Unity + C# Oyun Geliştirme Ortamı
Generic Class Kullanım Örneği
Unity oyun geliştirme ortamında C# ile oyun geliştirme sürecinde, C# yazılım diline özel birkaç yöntemi RappGames tarafından tasarlanan Crash Disc oyunu içinde kullandık. Bu kullanım örneği ile oyun sürecindeki seviyeleri ve bunlara bağlı rastsal değerleri oluşturabilmek için soyut sınıfı, generic type ile ifade ederek kesikli (discrete) ya da süreklik (continuous) verilerin üretilebilmesini sağladık.
[Serializable]
public abstract class LevelRange<genericTypeValue>
{
public genericTypeValue Min;
public genericTypeValue Max;
public abstract genericTypeValue GetRandomValue();
}
[Serializable]
public sealed class LevelRangeFloat : LevelRange<float>
{
public override float GetRandomValue()
{
return Random.Range(this.Min, this.Max);
}
}
Bu sınıf tanımları kullanılarak double, byte, integer veya float gibi veri türlerinde farklı değerler üretilebililir.
Ayrıca mobil uygulama içinde kullanıcıya özel veri alanında bu sınıfa ilişkin değerleri saklamak adına da attribute yöntemleri kullanılarak sınıflar serializable hale getirilebilir ve JSON biçiminde utf-8 formatında string oluşturarak saklanabilir.
Faydalı bu yöntem ile Crash Disc oyunumuzda, yüzlerce seviyeyi (level) modelleyerek kullanıcı arayüzünü dinamik hale getirdik.