‫Tekrar hoş geldiniz.
‫Şimdi, oyuna başlarsak ve bir davranışı kontrol edersek, yani portakallarımızı kesersek, onlar da sonsuza kadar
‫oyunda kalacaktır.
‫Böylece portakallarımıza iyi bakmış olduk.
‫Belirli bir süre sonra silineceklerdir.
‫Ama bizim kesilmiş portakallarımız öyle değil, o yüzden bunu değiştirelim.
‫Kodumuza ve bu durumda meyve kodumuza girelim.
‫Yani burada 5 saniye sonra nokta oyun nesnesini yok edin.
‫Yani yarattığımız dilim dilim meyvemiz olan bu anlık oyun nesnesi 5 saniye sonra silinecek.
‫Şimdi bu doğruysa bir bakalım.
‫Şimdi dilimleyeceğim ve bakalım o turuncu kesilmiş oyun nesneleri 5 saniye sonra silinecek mi?
‫Ve gördüğünüz gibi, gittiler.
‫Bunlar çok önemli şeyler.
‫Bunlara dikkat etmezseniz, performans sorunlarıyla karşılaşabilirsiniz.
‫Ve bu, çok sayıda güçlü donanıma sahip bir PC için o kadar da büyük bir sorun değil, ancak akıllı telefonlarda
‫bir sorun.
‫Bu yüzden oyun nesneleri oluştururken ve silerken gerçekten dikkatli olun.
‫Tamam.
‫Sonra, bıçağı oluşturalım.
‫Öyleyse boş bir oyun nesnesi oluşturalım ve bunu blade olarak adlandıralım.
‫Şimdi dönüşüm konumunu sıfırlayalım ve bir iz oluşturucu olan bir bileşen ekleyelim.
‫Fragman oluşturucu diye bir şey var.
‫Bunu kullanalım.
‫Komut dosyasını kaydedin ve kontrol edin.
‫Ve eğer hareket edersek ve X ve Y değerleriyle oynarsak, şimdi görebileceğiniz gibi, bu eflatun rengi yaratır, bu da
‫henüz bıçağımız için doğru malzemeye sahip olmadığımız anlamına gelir, bu yüzden bunun için bir malzeme
‫oluşturalım.
‫Şimdi varlıklar klasörümüze gidelim ve bunun için bir materyal oluşturmak amacıyla yeni bir klasör oluşturalım.
‫Yani materyal ve aslında materyaller, çoğul.
‫Ve burada, yeni bir materyal oluşturmak istiyorum ve buna Blade adını vereceğim.
‫Şimdi, elbette bir renge ihtiyacı var ve ben açık mavi alacağım, aslında, belki biraz
‫daha güçlü böyle.
‫İstediğiniz herhangi bir rengi alabilirsiniz, bu yüzden ben sadece bu maviyi alacağım.
‫Şimdi bıçağımızı kontrol edelim ve burada malzemeye ihtiyacı var.
‫Materyallere tıklayın ve burada hiçbiri olmayan bir materyal olduğunu söylüyor.
‫Yani sıfır elementinde malzeme yok.
‫Hadi bunu oraya sürükleyelim.
‫Şimdi bunu test edersek ve bıçağımızı ileri geri hareket ettirirsek, mavi malzememizin orada olduğunu göreceğiz.
‫Şimdi istediğimiz şey, fragman oluşturucumuzun faremizi takip etmesi ve bunu yapan bir işlevsellik
‫var.
‫Böylece vektör üç değerini kontrol edecektir.
‫Yani a3d değeri.
‫Bizim dünyamızda, elbette oyunumuz 2D bir oyun, ancak yine de fare 3D bir dünyanın içinde ve biz sadece
‫bizim için uygun olan 2D bileşenleri kullanacağız.
‫Tamam.
‫Şimdi, ticaret işleyicimize bakarsak, uzunca bir süre oyunda kaldığını görürüz.
‫Ve bunun bu zamanla bir ilgisi var.
‫Ve bunu 0 olarak değiştirelim. 2.
‫Yani sadece 0 için canlı olacak. 2 saniye, bu da küçük bir iz olacağı anlamına geliyor, ancak burada
‫çok uzun bir iz olmayacak.
‫Bunu test edelim.
‫Tekrar çalıştıralım ve X değerimizin konumunu değiştirelim.
‫Gördüğünüz gibi, uzun süre canlı kalmıyor.
‫Sadece çok kısa bir ömrü vardır.
‫Ve tabii ki çok da geniş çünkü oyunumuzda bu devasa kesik veya bu devasa bıçak görünümüne sahip olmamalıyız.
‫O zaman 0 diyelim. 1 ve nasıl göründüğüne bakalım.
‫X değeri ile oynayalım.
‫Ve işte görüyorsunuz, böyle görünebilir.
‫İzimiz bu şekilde görünecek.
‫Şimdi, daha güzel bir görünüm elde etmek için, aslında oyun sahnesini biraz daha büyük yapacağım, böylece
‫biraz daha iyi görebileceğiz.
‫Bu yüzden izimin görünümünü değiştirmek istiyorum çünkü şu anda yaptığı şey her zaman 0. 1 ve biz bunu değiştirmek istiyoruz.
‫Şimdi bir anahtar ekleyelim.
‫Buradaki merkezi en üste sürükleyelim ve sonuna bir anahtar daha ekleyip onu da en alta sürükleyelim.
‫Şimdi bunun ne anlama geldiğine bir göz atalım.
‫Yani X konumumuzu hareket ettirirsek, gördüğünüz gibi, daha çok bıçakla kesilmiş gibi görünür.
‫Bunu yalnızca çok hızlı bir şekilde görebilirsiniz, ancak fare işlevselliğimizi uygular uygulamaz çok daha anlamlı hale
‫gelecektir.
‫Harika.
‫Bundan sonra bıçağımızın hareket edebilmesi ve oyunda fiziksel bir etkiye sahip olabilmesi için sert bir gövdeye ihtiyacı olacak.
‫Çünkü elbette istediğimiz şey, faremizle birlikte takip edecek
‫olan bıçakla bir nesneyi kesersek, o nesnenin etkilenmesini istiyoruz.
‫Bunu yapmak için, devam edelim ve DX'e bir katı gövde ekleyelim ve bu kinematik olmalıdır.
‫Bu, bıçağımıza diğer nesnelerden etkilenmemesi gerektiğini söyler, ancak yine de diğer nesneleri
‫etkileyecektir.
‫Örneğin, meyvelerimizi etkilemeye devam edecek, ancak meyveler bıçağımızı sürüklemeyecek veya itmeyecektir.
‫Ve çarpışma algılama da burada sürekli olmalıdır çünkü burada çok hızlı bir çarpışma olmasını istiyoruz.
‫Tamam.
‫Daha sonra, elbette, az önce gördüğümüz bu güzel davranışı sadece fare ile gerçekleştiren bir komut
‫dosyasına sahip olmak istiyoruz, böylece burada dönüştürme bileşenimizde ayarladığımız
‫X ve Y konumu boyunca takip etmez, ancak aslında faremizi takip eder.
‫Şimdi bu betiği blade olarak adlandıralım ve betiği açalım.
‫Ve burada start metodumuz yerine awake metodunu kullanacağız.
‫Ve burada aslında RB olarak adlandıracağım bir sert gövde, özel veya B veya
‫sert gövde oluşturacağız ve bu RB'yi DX'e sert gövde bileşeni alarak başlatalım.
‫Bunun yapacağı şey, sert gövde bileşenini bıçağın kendisinden almaktır çünkü bıçak bu
‫komut dosyasını içerir.
‫Bu yüzden bu sert gövdeyi buraya alacaktır.
‫Daha sonra, faremizi takip eden bıçağımızla ilgilenecek bir yönteme ihtiyacımız var.
‫Şimdi mouse ile ilgili private void set adında yeni bir yöntem oluşturalım.
‫Dolayısıyla bu yöntem, bıçağı faremizin konumuna ayarlamakla ilgilenecek ve biz sadece sert gövdeyi değiştireceğiz.
‫Yani RB'nin kamera noktasındaki konumu ana ekranı dünyaya çevirir.
‫Nokta, konumu ekran uzayından dünya uzayına dönüştürür.
‫Yani burada istediğimiz şey tam olarak bu.
‫Ve şimdi basitçe girdinin fare konumumuz olması gerektiğini söylüyoruz.
‫Yani faremiz dünyaya kıyasla neredeyse, sert gövdenin ya da bıçağımızın sert gövdesinin orada
‫olmasını isteriz.
‫Ve bu bize slaytı verecektir.
‫Bakın, bunu birazdan göreceğiz.
‫Ve elbette, güncelleme yöntemimizde, her zaman faremiz boyunca takip etmesi için güncel tutmak
‫amacıyla set blade to mouse'u sürekli olarak çağıracağız.
‫Böylece, faremizin nerede olduğuna bağlı olarak her bir karede katı gövdenin konumunu değiştirecektir.
‫Pekâlâ, Blade senaryosuna geri dönelim.
‫Ve burada çözmemiz gereken küçük bir şey var.
‫Yani bazı durumlarda sizin için işe yarayabilir.
‫Yani oyuna başlarsanız, farenin takip edildiğini zaten göreceksiniz.
‫Ancak diğer durumlarda çalışmayacaktır çünkü fare konumunun kendisi 3B bir noktadır, ancak dünyamız 2B
‫bir dünyadır, bu nedenle şimdi her zaman doğru hesaplamaz.
‫Bunu düzeltmek için yapmamız gereken şey, fare konumu veya fare pozu adında yeni bir
‫değişken oluşturmak ve bunu buradaki gibi giriş fare konumuna ayarlamaktır.
‫Aynı pozisyon.
‫Ancak şimdi yapacağımız şey, fare konumumuzun Z değerini on değerine ayarlamaktır.
‫Yani bu, kameradan on birim uzaklıkta
‫olacağı anlamına gelir.
‫Ve şimdi burada yapabileceğimiz şey, giriş fare konumunu teslim etmemek, ancak fare pozunu teslim etmektir.
‫Şimdi bunu kaydedelim.
‫Birliğe geri dönelim.
‫Ve bu arada, buradaki on aslında buradaki eksi on.
‫Bu yüzden doğru pozisyonu elde etmek için on adım daha ileri gidiyoruz.
‫Tamam.
‫Bunu tekrar deneyelim ve şimdi gerçekten bir null pointer istisnası alalım.
‫Ve burada, tabii ki, yargıç, bir hafta olması gerektiğini söyledi.
‫Tamam.
‫Şimdi bunu kontrol edelim.
‫Oyuna tekrar başlayalım.
‫Bir bakalım.
‫İşte buradasın.
‫Tabağımız takip ediliyor.
‫Yani şu anda sahip olduğumuz bıçak etkisi bu.
‫Yani, eğer kaydırırsak, elbette şimdi silmek ya da meyveleri kesmek istiyoruz.
‫Hadi yapalım şunu.
‫Pekâlâ, şimdi meyveleri keselim.
‫Meyve senaryomuza geçelim.
‫Ve burada DX'e tetikleyici girişi üzerine bir tetikleyici girişi olayı ekleyeceğiz.
‫Bu yöntemi çağırıyoruz ve bıçakla her çarpıştığımızda, devam etmek ve dilimlenmiş meyveler oluşturmak istediğimizi söylüyoruz.
‫Böylece meyvelerimiz kesilmiş olacak.
‫Şimdi burada bir bıçak nesnesi oluşturalım.
‫Blade B çarpışma noktası bileşenini alırız ve ona blade deriz ya da aslında bıçağın kendisini elde ederiz.
‫Dolayısıyla, çarpıştığımız nesneyle birlikte blade adında bir bileşen varsa, blade
‫türünde B adında bir nesne oluşturun ve ardından B olup olmadığını kontrol edip geri dönün.
‫Bu da artık hiçbir işe yaramayacaktır.
‫Böylece, tetikleyici giriş olayında bunun çağrısından çıkacaktır, ancak aksi takdirde devam edin ve dilimlenmiş
‫bir meyve oluşturun.
‫Bu yüzden artık güncelleme yönteminde bunu yapmayacağız.
‫O zaman bundan kurtulalım.
‫Ancak bunu tetikleyici girişinde yapacağız.
‫Böylece bıçakla her çarpıştığımızda dilimlenmiş meyve oluşturacağız.
‫Ve eğer bıçakla çarpışmazsak, o zaman onu hiçliğe geri döndürürüz.
‫Şuna bir bakalım.
‫Kodumuzu çalıştıralım.
‫Aslında, bunu denemeden önce, bıçağımıza bir çarpıştırıcı daha ekleyelim, çünkü şu anda bir çarpıştırıcısı
‫yok.
‫O zaman bir çarpıştırıcı oluşturalım.
‫Bir tane ekleyeceğim.
‫Circle Collider burada.
‫Bunu test etmeden önce elbette bunun tetikleyici olmasını sağlamamız gerekiyor ve bakalım meyvemiz de bir tetikleyici
‫mi?
‫Şimdi turuncumuza gidelim ya da turuncu da bir tetikleyici olmalıdır.
‫O zaman devam edelim ve tekrar deneyelim.
‫Şimdi, meyvelerimizi kesersek, kesildiklerini görebiliriz.
‫Ancak sizin de görebileceğiniz gibi, henüz mükemmel değil.
‫Dolayısıyla burada yarıçapımızın değerleriyle oynamamız gerekecek.
‫Şimdi sahneye girelim ve yarıçapımızın ne kadar büyük olduğunu görelim.
‫O zaman 0 diyelim. 5.
‫Belki de portakalla karşılaştırırsak yarıçap bu olabilir.
‫Buraya bir portakal getirelim.
‫Bu çok büyük olur.
‫Tahmin edebilirsin, o yüzden 0 diyelim. 3 belki ya da oh point.
‫Aslında, portakala ulaşır ulaşmaz onu çoktan kestik.
‫Doğru.
‫Yani üç noktanın hepsi doğru değer olmalıdır.
‫Şimdi bıçak tam olarak portakalla aynı boyutta.
‫Onu vurduğumuz anda iyi olacağız.
‫O zaman bunu deneyelim.
‫Ve şimdi biraz meyve keselim.
‫Gördüğünüz gibi meyvelerimizi dilimleyebiliyoruz.
‫Harika.
‫Pekala, oyunumuza yeşili ekleyeceğimiz bir sonraki videoda görüşmek üzere.