Overlay ve Toolbar

Unity editor içerisinde overlay ve toolbar oluşturma,

[Overlay(typeof(SceneView), "My Toolbar Overlay")]
class MyOverlay : Overlay, ICreateToolbar
{
    public override VisualElement CreatePanelContent()
    {
        return new Label("I'm the content shown in panel mode!");
    }

    public IEnumerable<string> toolbarElements
    {
        get
        {
            yield return MyToolbarItem.id;
        }
    }
}

Yukarıda örneklendirilen kod ile tool sahnedeki toolbar içerisinde kendimiz için düzenlenebilir bir toolbar yaratabiliyoruz.

Devamı »

YAZILIM PRENSİPLERİ

Bu yazımda yazılım prensiplerinin öneminden ve prensiplerden kısaca bahsedeceğim.

Geliştirilen çoğu yazılımın gün geçtikçe kod baseleri büyümeye başlar. Her ne kadar yazılımları geliştirmeden önce planlasak, şematik düzende tasarlasak ve üzerlerine çokça düşünsekte, bu büyüme kontrol edilmezse yapılar karmaşıklaşır ve kontrolden çıkar. Aynı zamanda bu karmaşa gün geçtikçe yazılımın sürdürülebilirliğinin azalmasına ve performans problemlerine sebep olur. Bu yüzden ipleri hiç bir zaman elden bırakmamak gereklidir. Yaptığımız her geliştirmeyi titizlikle bu prensiplere uygun şekilde yapmak, daha sonra bu geliştirmeye dönüp baktığımızda rahatlıkla anlayabilmemize ve müdahale edebilmemize olanak sağlar.

Ekip halinde çalışma durumlarında bu prensipler daha da önem kazanır. Bir kişinin geliştirdiği yapıyı başka bir zamanda başka bir kişinin ele alması gerekebilir. Bu noktada güncel olarak bu yapıyı kontrol eden kişinin yine güncellemelerin, geliştirmelerini bu prensiblere uygun bir şekilde geliştirmesi çok önemlidir. Böylelikle güncel olarak yapıyı ele alan kişelerin ve önceden yapıyı bir noktaya getirmiş kişilerin, zaman kazanmaları ve odaklarının bozulmamasını sağlamış olur. Bu noktada yazılım kim tarafından ne zaman yapıldığı önemini yitirir ve herkese açık bir şekilde anlaşılır ve geliştirilebilir olur.

Bu prensiplerden en önemlileri ise şunlardır;

Devamı »

SOLID PRENSİPLERİ

Bu yazımda SOLID prensiplerine giriş yapacağız ve ne amaçla kullanıldığı, neden bu prensiplere ihtiyaç duyduğumuzdan bahsedip genel içeriğe kısaca bir bakış atacağız.

SOLID, 5 temel tasarım prensibini içeren ve sayesinde ekiplerin, daha anlaşılır ve geliştirmeye açık kod yapıları oluşturabilmesine olanak sağlayan prensipler grubudur.

Geliştirilen yazılımın esnek, sürdürülebilir ve anlaşılır olmasını sağlayan prensipleri kapsar. Bu prensiplerden ilk olarak 2000 yılında Robert C. Martin “Uncle Bob” Design Principles and Design Patterns kitabında bahsetmiştir. SOLID prensipleri Clean Code temelini kapsayan yaklaşımları içermektedir.

Devamı »

Singleton.cs

Unity içerisinde kullanılmak üzere generic yapıda hazır singleton sınıfı.

Unity içerisinde kullanılmak üzere global erişimler için klasikleşmiş desing pattern olan “Singleton” sınıfını paylaşmak istedim. Generic yapıda oluşturulan bir sınıf. Base class olarak tüm sub classlara implement edilebilecek bir generic sınıf. (Örn: class Example : Singleton<Example>)

Dikkat edilmesi gereken önemli bir nokta da Singleton sınıfı MonoBehaviour sınıfının Awake methodunda oluşturulduğu için hiyerarşik bir bağlılık söz konusu olur. Bu sebeple kullanmak istediğiniz yeri iyi analiz edip, design pattern’inizi bu bağlılığı dikkate alarak yapmanız gerekmektedir. Yani Awake methodu başka sınıflar içerisinde kullanıldığı zaman hiyerarşik bir bağlılık(dependency) oluşturur. Bu sebeple singleton özelinde anti-pattern düşüncesi ortaya çıkar. Buna dikkat etmekte fayda var.

Devamı »