‫Yani amacımız mermileri ateşleyebilmek ve mermi bir şeye çarptığında, düşman kulesine
‫çarptığımızda ve düşman kule mermileri bize çarptığında bir patlama etkisi elde etmektir.
‫Merhaba ve tekrar hoş geldiniz.
‫Şimdi bölüm planımıza bir göz atalım ve ne kadar ilerlediğimizi görelim.
‫Artık bir tank yarattığımızı biliyoruz.
‫Dünyanın her yerinde hareket edebilir.
‫Bir düşman taret sınıfı yaptık.
‫Oyunumuza sağlık hasarı ve yıkımın yanı sıra ateş işlevi ve mermiler ekledik.
‫Artık kazanma ve kaybetme koşullarımız var ve bunları HUD'umuzda widget'larla gösteriyoruz.
‫Şimdi son öğe özel efektlerimizi eklemektir, bu da mermimizin arkasından biraz dumanın yanı sıra bazı patlamalara
‫ve seslere ihtiyacımız olduğu anlamına gelir.
‫Oyunumuzu renklendirmek ve biraz daha cilalı görünmesini sağlamak için eklediğimiz birkaç
‫şey daha olacak.
‫Şimdi, bu videoda, bazı isabet parçacıklarını ele alacağız.
‫Bunlar, mermi bir şeye çarptığında kullanılan özel efektlerdir.
‫Bu, parçacık sistemi denen bir şeyi içerecek.
‫Şimdi editöre geri dönelim ve projemizdeki parçacık sistemlerine bir göz atalım.
‫Editörün yanındayım.
‫Varlıklar klasörüne ve efektlere gireceğim ve burada üç efektimiz var.
‫Bunlara parçacık sistemleri denir.
‫Artık bir vuruş efektimiz, bir ölüm efektimiz ve bir mermi izimiz var.
‫Şimdi devam edelim ve p vuruş efektine çift tıklayalım ve burada bir parçacık sistemi düzenleyicimiz olduğunu göreceksiniz.
‫Ve bu küçük görüntü alanında, bu patlamanın tekrar tekrar gerçekleştiğini göreceğiz.
‫Neyse ki bu parçacık sistemi bizim için çoktan oluşturuldu ve küçük, hoş bir patlamaya
‫benziyor.
‫Ve bu patlamanın mermi bir şeye çarpar çarpmaz gerçekleştiğini görmek istiyoruz.
‫Bu videodaki amacımız da bu.
‫Burada V'nin kodunda, mermi sınıfımıza geri dönmek istiyorum.
‫Şimdi mermi H'ye girelim ve bu sınıfa bir değişken ekleyeceğim ve bu bir parçacık
‫sistemi olacak.
‫Şimdi, bu özel bir değişken olabilir ve türü U olacaktır.
‫Parçacık sistemi ve bu bir işaretçi olacak ve buna hit parçacıklar diyebiliriz.
‫Şimdi bunu ileri bildireceğim ve ayrıca buna yeni bir özellik vereceğim.
‫Diyelim ki mülkünüz var ve ben bunu herhangi bir yerde yapmak istiyorum, böylece bunu mermimiz için plandan
‫ayarlayabiliriz.
‫Hazır başlamışken, buna bir kategori vereceğim ve diğer savaş değişkenlerimizle ilgili
‫olduğu için bunu savaş kategorisine yerleştireceğim.
‫Şimdi bu herhangi bir yerde düzenleme çünkü bunu planın içinden ayarlamayı planlıyoruz, böylece devam edebilir
‫ve bunu derleyebiliriz.
‫Şimdi düzenleyiciye geri dönelim ve diğer planlarımı kapatıp buradaki planlarda aktörler
‫klasörümüze gideceğim.
‫Aktörler, işte bizim B'miz. P. Mermi.
‫Bunu açalım ve tam plan düzenleyicisini açalım.
‫Şimdi detaylara bir göz atalım.
‫Panel.
‫Bu genel değişkenleri görmek için BP mermi özünün seçilmesi gerektiğini unutmayın.
‫Ve işte savaş bölümümüz ve isabet parçacıklarını görüyoruz.
‫Şimdi burada bir açılır menümüz var ve parçacık sistemlerini seçebiliyoruz.
‫Bu değişken parçacık sistemi türünde olduğundan, isabet parçacıklarımız için isabet efektini kullanacağız.
‫Şimdi bir değişkenimiz var ve değeri burada mermi planında ayarlanıyor.
‫Şimdi bunu derleyip kaydedelim.
‫Şimdi, bir sonraki adım, bir şeye çarptığımız anda bu parçacık sistemini gerçekten ortaya çıkarmaktır, bu da on hit'in bunu yapmak için
‫mükemmel bir işlev olduğu anlamına gelir, şimdi parçacıkları nasıl ortaya çıkaracağımızı ve oyunu nasıl kullanacağımızı bilmemiz gerekir.
‫Statiğin bunun için kullanışlı bir işlevi vardır.
‫Spawn emitter at location olarak adlandırılır ve belirtilen efekti verilen konumda ve rotasyonda
‫oynatır.
‫Ateş et ve unut.
‫Bu güzel bir şey çünkü onu kaldırma veya silme konusunda endişelenmemize gerek yok.
‫Sadece bu fonksiyonu çalıştırıyoruz.
‫Parçacık sistemini ortaya çıkarıyor ve bizim için temizliyor, ki bu harika bir şey.
‫Şimdi söz dizimine bir göz atalım.
‫Bir dizi giriş parametresi vardır, ancak bu fonksiyonun bir dizi aşırı yüklemesi vardır.
‫Şimdi, bu fonksiyonun birkaç versiyonu olduğu için, V'nin koduna girelim ve bu farklı versiyonlara
‫bir göz atalım.
‫Şimdi mermi CP'sini açacağım ve vuruş fonksiyonuna bir göz atacağım.
‫Şimdi burada hemen alt kısma gameplay statics spawn emitter at location yazacağım ve açılış parantezini yazar
‫yazmaz açılan pencere bana girmem gereken giriş parametrelerini gösterecek.
‫Ancak üç taneden birini görüyoruz, bu da bu işlevin üç farklı versiyonu olduğu anlamına geliyor.
‫Üç Aşırı Yük.
‫Bu aşırı yüke bakmak için aşağı oka iki kez tıklayacağım.
‫Şimdi bir dünya bağlamı nesnesi, bir parçacık sistemi ve bir konum alır ve geri kalan girdi parametreleri vardır.
‫Varsayılan değerler, yani isteğe bağlıdırlar.
‫Döndürme parametresinin sıfır döndürücü olarak ayarlandığına dikkat edin.
‫Şimdi eğer istersek, get active rotation'ı geçerek yayıcıların rotasyonunu aktörün rotasyonuna ayarlayabiliriz.
‫Çok önemli değil, ancak yayıcıyı aktörle aynı rotasyonda ortaya çıkarmak istiyorum.
‫Bu yüzden aktif rotasyonu kullanmak ve bunu içeri aktarmak istiyorum.
‫Ancak bu parametrelerin geri kalanı isteğe bağlıdır.
‫Dolayısıyla, bir parçacık sistemini oynatmak için spawn emitter'ı konumda çağırmamız gerektiğini bildiğimizden, bunu
‫on hit işlevinde yapabiliriz.
‫İlk parametrenin bir dünya bağlamı nesnesi olduğunu ve bununla nasıl başa çıkacağımızı zaten biliyoruz.
‫Bir parçacık sistemi aldığını biliyoruz ve içeri aktarabileceğimiz bir parçacık sistemi değişkenimiz var.
‫Ayrıca bir konum ve rotasyona ihtiyacımız olduğunu biliyoruz ve bunları belirli bir aktör için get actor location ve get actor rotation
‫kullanarak nasıl elde edeceğimizi biliyoruz.
‫Tüm bu bilgilere sahip olduğunuza göre, mermi sınıfı için vuruş fonksiyonunda U oyun statiği
‫fonksiyonu spawn emitter at location'ı kullanmanızı istiyorum.
‫Bu yüzden bunu dünya bağlamı nesnesi için geçirin, parçacık sisteminin kendisini, oluşturduğumuz yeni hit
‫particles değişkenini geçirin ve get active location kullanarak mermilerin konumunu kullanın ve get actor rotation
‫kullanarak mermilerin rotasyonunu kullanın.
‫Videoyu duraklatın ve yayıcıyı şimdi vuruş işlevinde ortaya çıkarın.
‫Tamam.
‫Bu yüzden, sadece bu fonksiyonun aşırı yüklerine bakmak için kullandığımız bu satırı kaldıracağım.
‫Ve bunu aktörü yok etmeden hemen önce yerleştireceğim.
‫Yani, örneğin fonksiyonun sonuna yerleştirdiyseniz, sorun yoktur.
‫Meydan okuma sizin için açık uçlu bırakıldı.
‫Ancak bunu aktörü yok etmeden hemen önce yerleştireceğiz, çünkü aktörü yok edersek, ondan
‫sonra parçacıkları ortaya çıkarmak mantıklı olmaz.
‫Bu yüzden bunu aktörü yok etmeden önce yapacağız.
‫Bu yüzden gameplay statics spawn emitter at location diyeceğiz ve ilk olarak dünya bağlamı nesnemize ihtiyacımız
‫var, bu da bu olacak.
‫Daha sonra isabet parçacıklarımıza ve ardından get actor location kullanacağımız aktör konumumuza ihtiyacımız
‫var.
‫Daha sonra get actor rotation'ı kullanacağımız rotasyonu aktaracağız ve şimdi yayıcıyı konumda
‫ortaya çıkarıyoruz.
‫Şimdi, belirtmek istediğim bir şey var, eğer sahibim bir null pointer ise ve bu fonksiyondan
‫erken dönersek, mermiyi orada yok etmek iyi bir fikir olabilir.
‫Bu yüzden bu return ifadesini kaldırmak ve bu if ifadesine kendi gövdesini vermek istiyorum.
‫Ama dönmeden hemen önce, aktörü yok etmeliyiz.
‫Bu yüzden bu if kontrolünde yok et diyeceğim.
‫Ve aslında, buradaki diğer tüm kontrollerde başarısız olsak bile, diğer aktörü kontrol ederek, bir merminin
‫dünyada öylece kalmasını istemeyiz.
‫Bu yüzden bu ikinci yok etme çağrısını if kontrolünün dışına taşımalıyız.
‫Bu şekilde, ne olursa olsun bir şeye çarptığında mermiyi yok ediyoruz.
‫Bu şekilde, herhangi bir nedenle kalıcı mermilerimiz olmaz.
‫Tamam mı?
‫Hazır güvendeyken, burada isabet parçacıklarını kullandığımızı fark etmeliyiz, bu da onları kullanmaya başlamadan
‫önce isabet parçacıklarının ayarlanıp ayarlanmadığını kontrol etmemiz gerektiği anlamına gelir.
‫Aksi takdirde, ayarlanmamış bir hit particles değişkeni kullanıyor olabiliriz ve null pointer kullanmamalıyız.
‫Bu yüzden, isabet eden parçacıkların geçerli olup olmadığını görmek için buraya bir if kontrolü yerleştireceğiz ve eğer geçerliyse,
‫o zaman buradaki konumda spawn emitter'ı çağırmak güvenlidir.
‫Tamam.
‫Şimdi devam edelim ve bunu derleyelim.
‫Ve başarılı bir derlemeyle, editöre geri döneceğiz ve işte BP mermisi.
‫İsabet parçacıklarımız ayarlandı, bu yüzden bunu test etmeden önce ayarlandığından emin olun.
‫Aksi takdirde, hiçbir şey göremeyiz.
‫Oynat tuşuna basarsak, go widget'ımızı bekleyebilir ve sonra bum, şuna bir bakabiliriz.
‫Duman bulutlarımız var.
‫Ortaya çıkan parçacıkları vurduk.
‫Devam edip düşmanlarımıza ateş edeceğim ve biz düşmanları vururken onların da ortaya
‫çıktığını göreceğiz.
‫Mükemmel.
‫Özetle, şimdi bazı isabet parçacıkları ürettik.
‫Mermilerimiz dünyada bir şeye çarptığında patlamalar oluyor.
‫Bir sonraki adım ise havada uçarken merminin arkasından gelen bir duman izine sahip olmaktır.
‫Bunu da bir sonraki videoda ele alacağız.
‫Yakında görüşürüz.