State Pattern – State Machine Nedir? (C# & Unity)
En popüler dizayn kalıplarından biri olan State Pattern, temiz & sürdürülebilir kod yazmamızın en anahtar öğelerinden biridir. State Pattern, nesnenin davranışlarında kolaylıkla değişiklik ve geçiş yapmamızı sağlar. Bu kalıp özellikle yapay zeka, karakter hareketi yönetimi, day/night dönüşümleri gibi mekanikler kullandığımız zamanlarda, en yakın dostumuz haline gelir. Haydi bu kalıbı kullanarak State Machine oluşturup davranışlar arası geçiş yapmayı öğrenelim!
Niçin State Pattern Kullanırız?
Oyun yaparken objelerimiz birden fazla davranışlara sahip olabilir. Örneğin bir platform oyununda karakterimiz; bekleyebilir, yürüyebilir, koşabilir, zıplayabilir, tırmanabilir ve daha birçok davranışa sahip olabilir. Sadece beklemenin ve yürümenin olduğu basit bir yapıda, basit bir if yapısıyla işi çözebiliriz. Fakat davranışlar arttıkça kodda edeceğimiz kontroller artar ve kodun karmaşık hale gelmesi kaçınılmaz olur. Çünkü karakterimiz birden fazla state’e sahip olmamalıdır. Açmak gerekirse, karakterimiz tırmanırken, koşmamalıdır veya yüzerken, idle behaviour’unda bulunmamalıdır. Kontroller biriktikçe “spaghetti code” adlı durum oluşur. State Machine kullanarak bu durumu çok basit bir şekilde çözebiliriz, Nedeni ise State Machine kullandığımızda, objemiz sadece aktif tek bir state’e sahip olur ve istediğimiz state’lere geçirebiliriz. Birazdan bahsedeceğimiz örneklerle oluşabilecek sorunları ve state ile bunu nasıl çözdüğümüzü daha iyi anlayacağız.
State Machine Yapısı Nasıl Kurulur?

DEVAM EDECEK!