Rpg Yapımı ders 1 Irk Seçim Ekranı

      Rpg Yapımı ders 1 Irk Seçim Ekranı

      Merhaba arkadaşlar , öncelikle daha önce okumadıysanız Rpg yapımı başlangıc klavuzu adlı konumu okumanızı tavsiye ederim . Konuyu sabitleyen freedream Moderator arkadaşımıza da bir teşekkür edelim ve başlayalım .


      Aslında rpg yapımı için izlene bilecek sayısız yol ve kombinasyon var . Ben üzerinde çalıştığım projede bir çok kez projem ilerlerken her şeyi başa alıp izlediğim yolu değiştirdim böylece bana en yatkın olan sistemi ve yolu izlemeye çalıştım , sizde bunu yapmaktan kaçınmayın , projeyi başa almaktan kesinlikle korkmayın çünkü her başa aldığınızda ortaya daha iyi bir şey çıkacaktır.


      NOT : bu konuda kodları değil sadece scriptleri mantık olarak ve nasıl yazılacağı konusunda sizlere yansıtmaya çalışacağım . Scripts leri direk paylaşmanın size ve projenize yapılan bir kötülük olacağını düşündüğüm için böyle bir karar aldım. Yinede takıldığınız zor bir nokta olursa benimle iletişime geçerek daha fazla ayrıntı öğrene bilirsiniz .


      Daha önce ayrı ayrı scriptsler yazmıştım . Bir çoğu işini gayet güzel yapıyordu . Fakat scriptsler arasında bilgi paylaşımını sağlamak vs. ve her scripts te gereksiz yere benzer yada aynı değişkenleri tekrar etmenin gereksiz bir kod yükü oluşturduğunu fark ettim bunun için scripstleri birbirinin alt sınıfı olarak yazmaya karar vedim ve gayet güzel sonuçlar elde ettim diye bilirim.
      bu scriptslerin hepsine teker teker bakacağız ama öncelikle bu derste hiyerarşiyi kontrol edip karakter yaratma ekranın mantığını kuracağız.






      ben şu şekilde bir dizlim oluşturdum .
      A - Irk Secim Ekranı
      B - Karakter Ekranı
      C - Oyuncu sınıfı
      (oyuncu sınıfı altında ki scriptler)
      1 - Exp
      2- Seviye (level)
      3 - Stats
      4 - Can
      5 - Buff
      6 - Defans
      7 - Hedef Alma (Targetting)
      8 - Skill
      9 - Attack
      10- Item
      11 - Görev




      A-) Irk Secim ekranı ;
      yeni bir scene açıp öncelikle bir ırk secim ekranı oluşturun , Daha sonra Irksecim scriptsi oluşturup main kameranın içine atın . Benim projemde 3 farklı ırk var bu sebeble scriptsin içinde ilk olarak int türünde bir ırk değişkeni tanımladım değişkenin değeri 1 olduğunda birinci ırkı , 2 olduğunda 2. ırkı 3 olduğunda 3. ırkı simgeliyor , oyun boyunca ırklarla alakalı her işlemde bu kontrolu kullanmaya çalışcağız . 2. olarak daha önce bir karakter oluşturulup oluşturulmadığını kontrol etmek amacıyla 2. bir değişken tanımladım . sonra GUI.Window özelliğini kullanarak Irk Seçme Ekranı adında bir pencere tanımlayın , GUI.Window'a ait Funaction metodunun içinde tekrarda 3 tane buton ve butonların tam altına gelcek şekilde 3 tane Box tanımlayın , boxların içinde ırk bilgilerini gösterin butonlarda ise ırk isimlerini , daha sonra butonlardan birine tıklandığında ırk değişkennine butonun simgelediği ırkı , yansıtan bir değer atamasını sağlayın mesela 3. butona basıldığında ırk değişkeni 3 değerini alsın 2. butonda 2 değerini alsın , bunun böyle yapmamızın sebebi karakter yaratma ekranında kullanacağımız kontrol ifadelerini kolaylaştırmak adına . butona tıklandığında değişken değerinin atanmasını sağladıkdan sonra , değişkene diğer scenede kolay erişim sağlaya bilmek adına şimdilik playerprefabs.setint özelliğini kullanarak değişkeni kaydelim ve ardın da Application.LoadLevel(1) ile build ettiğimiz diğer scene yi yükleyelim .
      Daha bu scripts ile işimiz bitmedi 2. olarak daha önce bir karakterin yaratılıp yaratılmadığını kontrol ediceğiz . bunun için karaktervarmi adında bir değişken tanımlayın bool yada int türünde . eğer ırk secilip karakter ekranında bir karakter yaratılırsa (ders 2 KarakterEkranında anlatacağım) bu değişkenin değerini bir yada true olarak yine playerprefabs ile kaydedilmesini sağlıcaz .


      şuan bizi burada ilgilendiren karakter olup olmadığını kontrol etmek bunun için start fonksiyonun içinde if(playerprefabs.haskey("değişkeni kaydettiğimiz isim")){}
      şeklinde bir kontrol ifadesi, kullanacağız . sonra if in içine karaktervarmi = playerprefabs.get(int yada bool)("değişkeni kaydettiğimiz isim"); şeklinde bir kod yazarak kaydedilmiş değeri deişkene aktarıyoruz . bu kontrol ifadesinin hemen altına eğer değişkenin yeni değeri 1 yada true ise direk karakter Ekranın yüklenmesini sağlayacak 2. bir kontrol ifadesi yazarız . böylece oyun her çalıştırıldığında tekrar tekrar ırk secim ekranı açılmaz tek birkere ırkı seçer , ondan sonra oyun her başlatılıdığında ırka ait karakterlerin gözüktüğü karakter ekranına direk geçiş yapılır ta ki ırk bilgisini sıfırlayana kadar(ders 2 karakter ekranında anlatacağım).
      Eksik kalan yada unuttuğum bir yer var mı bilmiyorum , eğer daha sonra aklıma gelirse konuyu güncelleyerek eksiklikleri tamamlamaya çalışacağım . Eğer sizinde eklememi istediğin bir şey varsa lütfen belirtin .
      Bir sonraki derste görüşmek üzere .
      Tamam arkadaşlar dersleri videoya çevireceğim adım adım videodan ilerleriz :) Zaten freedream ilede görüştüm bir ana konu altında toplayacağız dersleri ve o konu sabitlenecek . Bir sorun çıkmazsa yarın sabah ilk videoya başlarım :) zaten bir sorun olursa ya da herhangi bir şeyde yardımım gerekirse bana ulaşın en kısa sürede yardımcı olmaya çalışırım :)