6if else.fw

Unity 2D Oyun Tasarımı Ders6 | Karakter Kontrolü ve If Else Yapısı

Unity 2D derslerinin 6. ile devam ediyoruz..
Bu dersimizde öğreneceklerimiz:

1: Karakter beklerken animasyon eklemeyi,
2: Karakter hareket etmeye başlayınca animasyonumuzun çalışması,
3: Karakter sola hareket ettiği zaman karakterin dönmesini,
4: Karakterimizin zıplamasını öğreneceğiz..

Karakterimize yeni bir animasyon ekleyerek başlayalım
Aşağıda ki sıralama Ders2‘ de anlatıldığı için hızlı geçilecektir..

Sırasıyla:
1: Assets>Trace>Sprites>RobotBoyIdleSprite gidiyoruz..
2: Inspector penceresinden Sprite Mode>Multiple>Apply>Sprite Editor açıyoruz..
3: Slice>Automatic>Slice butonuna basıp Apply diyoruz ve Sprite Editorumuzu kapatıyoruz

4: Ana resim Scene kısmına sürüklenerek yeni animasyon oluşturuyoruz ve Scene kısmında oluşan karakteri siliyoruz..

Zemin belli olsun diye ben Sahneye bir resim atıp Box Collider ekledim Bknz: Ders3
Scene ve Project kısmımız şöyle gözüküyor Bknz: Resim1

Resim 1
Resim1

Daha sonra karakterimizi seçerek Animator sekmesine tıklıyoruz..
Project kısmında bulunan yeni oluşturduğumu Bekleme Animasyonu(IdleAnimation) dosyasını Animator içine sürükleyip bırakıyoruz..

Animator penceremizin son hali için Bknz: Resim2

Resim 2
Resim2

Şimdi yapacağımız şey karakterimizin oyun başlarken bekleme animasyonunun çalışması,
Daha sonra biz hareket ettirdiğimiz zaman hareket animasyonunun çalışması..

1: Bunun için öncelikle IdleAnimation yazan butonumuza sağ tıklıyoruz ve “Set as Layer Default State” seçiyoruz..
2: Daha sonra IdleAnimation yazan butonumuza sağ tıklıyoruz ve “Make Transition” seçiyoruz..
3: Çıkan ok işareti ile birlikte WalkAnimation butonumuza tıklıyoruz..

4: Ve aynı işlemi WalkAnimation için yapıyoruz WalkAnimation>Make Transition>IdleAnimation Bknz: Resim3

Resim 3
Resim3

Animator kısmı ile işimiz bitti, şimdi gelelim Script kısmına..
GameObject’imizin Animator kısmına müdahale edebilmemiz için GetComponent kodu ile Animator’u çağırıyoruz.. Bknz: Ders 5
İlk önce bir değişken oluşturalım:

private Animator anim;

private = bu değişken sadece bu Script de çalışır demek
Animator = Component adı
anim = Değişkenimize verdiğimiz isim

Şimdi ise Start() methodumuzun içine GetComponent ile Animatorumuzu çağırıp “anim” değişkenimize atayalım.. Bknz: Resim4

anim = gameObject.GetComponent<Animator>();

Resim 4
Resim4

X ve Y değerlerini bir gözden geçirelim..
X değeri “Horizontal” yani yatay ekseni gösteriyor..
Y değeri “Vertical” yani dikey ekseni gösteriyor..

Koordinat sistemini düşündüğümüzda, bir 0(sıfır yani orjin) noktası vardır..
0 noktasının sağ veya üst tarafı pozitif(+), sol veya alt tarafı negatif(-) değerler alıyordu..
Şimdi gelelim kodumuza,

İf Else yapısını da kodumuzun üzerinden anlatalım..

Bknz: Resim5

if (x > 0) {
       anim.Play ("WalkAnimation");
             } 
if (x < 0) {
       anim.Play ("WalkAnimation");
             }
if (x == 0) {
       anim.Play ("IdleAnimation");
             }
Resim 5
Resim5

Evet oyunumuzu çalıştırdığımız da sağa veya sola hareket ettiğimiz de yürüme animasyonu, hareket etmediğimiz de ise bekleme animasyonumuz çalışıyor..

Yalnız sola hareket ederken karakterimiz sola dönmüyor sadece animasyon çalışıyor..
Karakterimizin yönünü değiştirmemiz için gereken kod.. Bknz: Resim6

transform.localScale = new Vector2 (-1,1);

Resim 6
Resim6

Oyunumuzu tekrar çalıştırdığımız da herhangi bir sıkıntımızın olmadığını görüyoruz..
If else yapısına bir göz atalım

If ingilizce de “Eğer” anlamı taşır, yani bir koşul ifade eder..
Örneğin: Eğer şu şu olursa, şunlar şunlar olsun gibi..
Kodumuza tekrar bakacak olursak

if (x > 0) {
       anim.Play ("WalkAnimation");
             } 
yani If (Koşul) {
       //Koşul sağlanırsa işlenecek kod
             }

Bizim koşulumuz X , 0’dan büyük ise animasyonu oynat,
Yukarı da koordinat sisteminden bahsettik, X , 0’dan büyük yahut küçük olduğu zaman karakter hareket ediyor demektir..
Bu yüzden dedik ki Eğer “x > 0” veya “x < 0” ise anim.Play("AnimasyonAdı");

Else ise geri kalan diğer durumlarda demektir..
Yani If ile koşullarımızı belirledik, bu durumlar haricin de başka herhangi bir şey ile karşılarsan bunları yap demektir.. Bknz: Resim7

Resim 7
Resim7

Evet bir dersimizin daha sonuna geldik..
Daha önce bir programlama dili ile çalışmışlığınız yok ise, bu konular da sıkıntı çekebilirsiniz..

Elimden geldiğince açıklayıcı bir şekilde anlatmaya çalışıyorum, size de pes etmek yok 🙂
Takıldığınız sormak istediğiniz herhangi bir konu da yorum yazabilirsiniz..

İletişim: admin@herseymi.com
Yazı oluşturuldu 110

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön