‫Tamam.
‫Şimdi oyuna nasıl başlayabileceğimizi görelim.
‫Şimdiye kadar Unity'de oyunu başlatarak başladık, ancak oyunu oyun içinde başlatmak istiyoruz,
‫böylece oyuncu boşluk tuşuna basarak oyunu başlatabilir.
‫Bunu yeni bir komut dosyası oluşturarak yapalım.
‫Şimdi komut dosyalarına gidelim, C-sharp komut dosyası oluşturalım ve ben buna Oyun Yöneticisi adını vereceğim.
‫Bu oyun durumlarımızı kontrol edecek.
‫Şimdi burada da oyun tarzı bir oyun yöneticisi oyun nesnesi oluşturalım.
‫Öyleyse Oyun Yöneticisi ve bu komut dosyasını doğrudan oyun yöneticimize sürükleyelim.
‫Oyun yöneticisinin konumunu sıfırlayacağım, böylece temizlenmiş ve sıfır konumuna getirilmiş olacak.
‫Tamam.
‫Şimdi oyun yöneticimize bir göz atalım.
‫Gördüğünüz gibi, Unity'de zaten farklı bir tür simge alıyor çünkü oyun yöneticisi, dediğim
‫gibi, oyun durumlarımızla ilgilenecek çok özel bir betik.
‫Yani oyun yöneticisi çok basit olacak.
‫Şimdilik yöntemi başlatmamız veya güncellememiz gerekmeyecek.
‫Sadece oyunumuzun başlatılıp başlatılmadığını gösteren bir boolean'a ihtiyacımız olacak.
‫Bu yüzden public bool game started ve public void start game adında bir metot oluşturacağım ve bunu public yapacağım
‫ki erişebileyim ya da oyun yöneticisinin dışından kullanabileyim.
‫Bu yüzden başka bir koddan geliyorum ve burada yaptığım tek şey, start game metodu her çağrıldığında game started'ı true olarak
‫ayarlamak, olan tek şey oyunumuzun başlaması.
‫Boolean true olarak ayarlanır.
‫Şimdi kontrolörümüzde ihtiyacımız olan şey oyun yöneticimize erişmek çünkü yapmak istediğimiz
‫şey oyuncu boşluk tuşuna her bastığında sabit güncelleme yöntemi bunu tanımalı ve oyunu başlatmalıdır.
‫O zaman devam edelim ve bunu yapalım.
‫Öyleyse özel bir oyun yöneticisi oluşturalım ve buna oyun yöneticisi diyelim.
‫Şimdi Awake metodunda onu başlatmam gerekiyor, aksi takdirde oyun yöneticimiz null olacak ve bir hata alacağız.
‫Öyleyse bu find object of type sorununu çözelim ve buna game manager diyelim çünkü sadece game manager türünde
‫olan nesneyi arıyoruz ve sadece bir tane var ve o da bizim game manager'ımız, değil mi?
‫Bu yüzden buna sahip olmak istiyoruz ve bir komut dosyası içeriyor ve ona erişmek istiyoruz.
‫Şimdi yapabileceğimiz şey, oyunun başlamamış olup olmadığını kontrol etmektir.
‫Yani oyun yöneticisi, oyun yöneticisi değil, oyun başladı, bu da boolean oyun başladı'nın yanlış olduğu anlamına gelir.
‫O zaman geri dön.
‫O yüzden hiçbir şey yapma.
‫Şimdi bu betiği kaydedelim ve Unity'ye geri dönelim.
‫Şuna bir bak.
‫Oyunumuzu oynayalım.
‫Ve oyuncunun hareket etmediğini görebiliyoruz.
‫Oyun henüz başlamadı.
‫Ancak animasyon hala orada.
‫Yani oyuncumuz hala hareket ediyor ve bunu çözmeliyiz çünkü bu hoş bir durum değil.
‫Oyuncumuz burada ve sahte koşu yapıyor.
‫Bu eğlenceli değil, bu yüzden değiştirmeliyiz.
‫Aslında komik ama bunu değiştirmeliyiz.
‫O halde yeni bir durum oluşturalım çünkü burada sadece koşma ve düşme olmak üzere iki durumumuz var, yani ya koşabiliriz
‫ki bu harika ya da düşebiliriz ki bu o kadar da harika değil, ama aynı zamanda sadece boşta da kalabiliriz.
‫Şimdi boş bir durum oluşturalım ve buna boş diyelim ve tahmin edersiniz, değil mi?
‫Varlıklarımızda bunun için atıl olarak adlandırılan bir hareket vardır.
‫Böylece, oyuncu boştayken onun için bir animasyon olan bu hareketi kullanabiliriz.
‫Ve şimdi bu boş geçişi atıl durumumuza taşımamız gerekiyor.
‫Peki bunu nasıl yapacağız?
‫Buradan öylece sürükleyemezsiniz.
‫Yapmanız gereken şey, katmanı varsayılan durum olarak ayarlamaktır.
‫Şimdi boşta durumumuz katmanın varsayılan durumu olacak, yani buradan başlayacak.
‫Yani giriş ve ardından doğrudan atıl durumumuza geçer.
‫Bu harika.
‫Ama şimdi animasyon çalıştıramıyoruz.
‫Bunun nasıl görüneceğine bir göz atalım.
‫Gördüğünüz gibi, adamımız hareket ediyor.
‫Nefes alıyor.
‫Dikkatli bakarsanız birazcık hareket ediyor.
‫Şimdi yapmamız gereken boşta çalışmadan çalışmaya geçiş yapmak.
‫Ve tabii ki burada da bir davranışa ya da koşula ihtiyacımız var.
‫Yani Idol'den koşuya bir geçiş var ve şartlanmamız gerekiyor.
‫Öyleyse bir koşul ekleyelim.
‫Ancak şu ana kadar elimizde sadece aşağıdaki koşul var ki bu bizim ihtiyacımız olan koşul değil.
‫Oyunun başlayıp başlamadığını bilmemiz gerekiyor çünkü oyun başladıysa koşma animasyonunun
‫başlamasını istiyoruz.
‫Bu yüzden parametrelerde yeni bir parametre oluşturuyoruz.
‫Yani bunu nasıl yapacağınıza dair bir fikriniz olabilir.
‫Bunu yine bir tetikleyici ile yapabilirsiniz.
‫Öyleyse yeni bir tetikleyici oyun başlatalım.
‫Bu yüzden bu tetikleyiciyi çağıracağım ve şimdi geçişi açabilir ve şimdi hareket edebilir veya burada oyun başlatılmış
‫geçişi seçebiliriz.
‫Şimdi buraya tıklayabilir ve buradan oyun başlatma tetiğini seçebiliriz.
‫Yani bu, oyunun başlatılması için gereken bir koşuldur ve elbette bunu burada da ayarlayabiliriz.
‫Yani oyun yöneticisi game started false değilse, yani true ise, anim dot set trigger'ı game
‫started ile kullanmak istiyoruz.
‫Yani oyunumuzu buradan başlatacağız ve animasyonu buradan başlatacağız.
‫Şimdi bu betiği kaydedelim ve kontrol edelim.
‫Ve hala oyunu başlatamama sorunumuz var, enter tuşuna basabiliyoruz ve sonra oyuncularımız
‫dönüyor, ancak oyunu henüz oyun yöneticisi ile başlatmıyoruz.
‫Hadi yapalım şunu.
‫Oyun yöneticimize gidelim ve bir oyun ekleyelim.
‫Özel void güncelleme yöntemi.
‫Ve burada sadece bir giriş olup olmadığını kontrol ediyoruz.
‫Yani giriş noktası tuşu aşağı alırsa ve tuş kodu diyelim ki return ise.
‫Yani birisi return tuşuna bastığında oyunun başlamasını istiyoruz.
‫Sonra devam edin ve oyunu başlat yöntemini çağırın, bu da oyunun başladığı boolean'ını true olarak ayarlamak anlamına
‫gelir.
‫Bunu test edelim.
‫Oyunu duraklatalım ve tekrar çalıştıralım.
‫Şimdi bunu başlatırsak, oyuncumuzu göreceğiz.
‫Peki, devam edelim ve enter tuşuna basalım ve görebileceğiniz gibi, oyuncumuz zaten havada süzülüyor olmasına rağmen
‫ancak uzun bir süre sonra koşmaya başlıyor.
‫Ve bu harika değil.
‫Ve bunu çok hızlı bir şekilde değiştirebiliriz.
‫Şimdi boştaki animasyonumuza geçelim.
‫Ve burada, geçişe gidelim ve şimdi bir çıkış zamanına sahip olmayı seçebiliriz.
‫Bu yüzden bu çıkış süresine sahip olmak istemiyoruz çünkü şimdi animasyonumuz bitmiş olacak.
‫Ve sadece neredeyse 4 saniye süren bu boşta kalma animasyonu bittikten sonra, çalışma durumuna geçeceğiz ve bunu
‫istemiyoruz, böylece çıkış zamanını devre dışı bırakabiliriz.
‫Yani bu, doğrudan çalıştırma animasyonumuza gideceği anlamına gelir ve ayrıca çalıştırma animasyonumuzu
‫veya çalıştırma durumumuzu burada biraz sağa taşımak istiyoruz, böylece herhangi bir geçiş olmadan gider.
‫Ve eğer sadece koşuyu hareket ettirirsek, her zaman geri döneriz.
‫Bu yüzden buradaki parçayı Idol durumunun sonuna doğru hareket ettirmemiz gerekiyor ve ardından çalıştırma durumuna geçiyoruz.
‫Tamam.
‫Şimdi bunu tekrar test edelim ve enter tuşuna basar basmaz ne olacağını görelim.
‫Gördüğünüz gibi, doğrudan çalışma durumuna geçer.
‫Şimdi aynı şeyi bu has exit ile takip eden durumunuza yapabilirsiniz.
‫Bir bakalım.
‫Enter'a basalım ve düşelim ve hala iki veya üç adım koşalım ve sonra düşme animasyonunu yapalım.
‫Yani aynı şeyi burada da yapabilirsiniz.
‫Devam edelim ve çıkış zamanını değiştirelim ve şuraya gidelim.
‫Doğrudan takip ediyorum.
‫Şimdi bunu tekrar yapalım.
‫Bir göz atalım.
‫Eğer doğrudan düşersek ya da düşmezsek ve doğrudan düştüğümüzü görebilirsek.
‫Yani düşmeyi bırakır bırakmaz hala dönebiliriz.
‫Ancak düşmeyi bıraktığımız veya başladığımız anda, düşme animasyonuna başlayacağız.
‫Pekala, hepsi bu kadar.
‫Şimdi bir sonraki videoda oyuna başlayabiliriz.
‫Oyunu nasıl yeniden başlatabileceğimizi göreceğiz.