
Unity Döngü Çeşitleri ve Kullanım Şekilleri
Merhaba, bir önceki yazımızda nesneye rastgele hareket kabiliyeti kazandırmıştık.Bu dersimizde ise Unity‘de döngü çeşitlerine ve farklarına bakacağız.Aslında döngüler Unity‘de kullanıma sunulan özel kodlar değil.Tüm dillerde mevcut olan sadece bir takım yazım farklılıkları ile uyum sağlayan, projeyi yapan kişinin oldukça işini kolaylaştıran kod parçalarıdır.Bugünkü dersimizde Unity içerisinde C# scripti oluşturarak aralarındaki farka bakacağız.
Döngü çeşitleri nelerdir?
Öncelikle döngü çeşitlerine bakacak olursak For, While, DoWhile ve Foreach olmak üzere dört çeşit döngü fonksiyonu vardır.Bunların temel farklarına birazdan geçeceğiz.Bu döngüler aslında aynı işi farklı çözümler üreterek yaparlar.Hepsinin sağladığı bir kolaylık ve işlevsellik vardır.Örneğin, projenizde kullandığınız bir döngü fonksiyonu sizin probleminizi çözemezken diğer bir döngü tam aradığınız çözüm olabilir.
Şimdi kod yazmaya geçmeden önce yeni bir proje oluşturalım ve sahnemize bir tane boş nesne ekleyelim.Bunun içine Hierarchy penceresinde sağ tıklayarak, Create Empty seçimini yapıyoruz.Bu bizim C# script dosyamızı tutacak nesne olacaktır.
Scriptimiz oluşturmak için Project pencersinde sağ tıklayarak sırasıyla, Create > C# Script seçimini yapıyoruz.Daha sonra bir isim verelim ve dosyamızı sürükle/bırak ile oluşturmuş olduğumuz nesnenin üzerine bırakalım.Daha sonra script dosyamızı açılım.Evet artık ilk döngümüz olan For döngüsü ile başlayalım.
For döngüsünün yazım şekli.
for(int sayi = 0; sayi < 3; sayi++) { Debug.Log("Evet hazır mısın? Sayıyorum, bu: " + sayi); }
Bu döngü projemizde yapacağımız işlemlerin tekrar sayısının önceden belirli olduğu durumlarda kullanılır.Yani bu ne demek, örneğin bir nesnemiz var ve üç adımda ileriye gitmesi gerekiyor.Böyle bir senaryoda kullanılabilir.Yukarıdaki For döngüye geri gelecek olursak, parantez içersinde önce bir değişken tanımlıyoruz.Burada int türünden “sayi” dediğim bir değişkenim var.Daha sonra bu döngüye bir koşul veriyoruz.Burada, sayı üçten küçükse devam et dedik.
Diğer bir değişle, sayımız üçe gelenek kadar döngüyü sürdür.Tabi sonuç, “0,1,2” şeklinde olacaktır.Çünkü koşulumuz üçten küçük olduğu durumda çalışıyor.Eğer üçüde bu işin içine dahil etmek istersek o zaman, “sayi <= 3” şeklinde yazmamız gerekiyor.Neyse bu konu operatörlere girmeden devam edelim.Çünkü o taraf bambaşka bir yazı konusu olur.
While döngüsünün yazım şekli.
int sayi = 0; while(sayi < 3) { Debug.Log("Evet hazır mısın? Sayıyorum, bu: " + sayi); sayi++; }
While döngüsünün yazım şekli budur.For döngüsünden farlarına bakacak olursak, bu döngüde koşul sağlandığı sürece devam eder.Genelde yanlış yazılan koşullar neticesinde, kodunuz sonsuz bir döngüye girer ve makineniz kitlenebilir.Örneğin bir bool değişkeniniz olsun ve koşul kısmına değişkenin ismini yazıp deneyin.Artık sonusuz bir döngü ile karşı karşıyasınız.Neyse konumuza geri dönelim.
Yine bir farkı, while döngüsünde değişkenimizi dışarıda tanımlıyoruz.Ayriyeten yine bu değişkeni içeride değerini değiştirerek devam ediyoruz.Deminki örnekte olduğu gibi, sayımız üçten küçük olduğu sürece koşulumuz çalışmaya devam edecektir.Bu arada her döngü sonunda, sayımızın değeri “1” arttırılacak ve döngü başa saracaktır.
DoWhile döngüsünün yazım şekli.
int sayi = 3; do{ Debug.Log("Evet hazır mısın? Sayıyorum, bu: " + sayi); }while(sayi < 3);
Evet, DoWhile döngüsünü diğer döngülerden ayıran en önemli özellik (ve tek özellik), koşul sağlanamasa bile bir kere çalışabiliyor oluşudur.Yapısına bakacak olursak, koşulun bu sefer başta değilde sonda tanımlanmış olduğunu görüyorsunuz.Örnek yine aynıdır.Sayımız üçten küçükse devam edecek biçimde ayarlıdır.Yanlız burada dikkatinizi çekmek istediğim bir nokta var.
Değişkenimize bakacak olursak, üçe eşit olduğunu göreceksiniz.Bizim koşulumuz ise, üçten küçükse çalışmasını söylüyor.Bunu while döngüsünde deneseydik hiçbir sonuç alamazdık.Çünkü koşulumuz baştan yanlış olurdu.Anca do while için böyle bir durum söz konusu değil.Projemizi başlattığımız zaman bir kere çalıştığını göreceksiniz.
Foreach döngüsünün yazım şekli.
int[] sayilar = {1, 2, 3}; foreach(int say in sayilar) { Debug.Log("Evet hazır mısın? Sayıyorum, bu: " + say); }
Dizi tabanlı olan nesnelerimiz üzerinde kullanabileceğimiz foreach döngüsü, bir değişken ve koleksiyon değerine sahiptir.Buradaki örnekte, “sayilar” koleksiyonumuzu (kısaca diziler) oluşturuyor.Yani liste barındıran elemanlar buraya geliyor.Değişken bölümüne ise, farklı tipteki (bu örnekte int kullandık) elemanlar geliyor ve önceden belirlediğimiz bir isimle döngü içerisinde çekiliyor.Toparlayacak olursak foreach döngüsü, bir dizideki elemanların sayısı kadar dönmeye devam eder ve her eleman için döngü içindeki işlemi yerine getirir.C# script dosyamız hazır duruma geldi.
Bugünkü dersimizin de sonuna geldik.Aslında bu ders sadece Unity için değil, genel bir ders oldu.Bu döngüleri ilerideki yazılarımda sıkça kullanacağım.O zaman işlevlerini daha iyi anlayacağınızı umuyorum.Bir sonraki yazıda görüşmek üzere..