‫Merhaba ve hoş geldiniz.
‫Bu derste, seviye planında değil, belirli bir plan sınıfında bulunan fonksiyonlar
‫hakkında bilgi edineceğiz.
‫Bunlara üye fonksiyonlar denir ve nesne yönelimli programlama için kesinlikle çok önemlidir.
‫Nasıl çalıştıklarına bir bakalım.
‫Dolayısıyla, spawn projectile fonksiyonumuzda, seviye planında, burada impulsu eklemek, impulsun yönünü
‫almak ve statik örgü bileşenini almakla ilgili bir sürü düğümümüz var.
‫Bu düğümlerin tümü BP mermi örneğini derinlemesine kullanır.
‫Tüm bu kodu alıp BP mermisine taşıyabilsek ve böylece bu verilerle ilgilenen kodun verinin kendisiyle
‫birlikte yaşamasını sağlasak harika olmaz mıydı?
‫Nesne yönelimli programlamanın tüm amacı da budur.
‫Dolayısıyla nesne yönelimli programlamayı, işledikleri verilerle birlikte yaşayan fonksiyonlar olarak tanımlayabiliriz.
‫Peki bu nasıl çalışıyor?
‫Nesnelerin belirli örnekleri üzerinde nasıl işlevler oluşturabiliriz?
‫Bunu yapabilmemizin bir yolu BP mermi sınıfımızı açmak ve tam plan düzenleyiciyi aç seçeneğine
‫tıkladığımızdan emin olmaktır, bu tam plan düzenleyicide bir planım bölmesi ve bir işlev bölümü
‫olduğunu görebilirsiniz, böylece BP proje sınıfında yeni bir işlev oluşturmak için buradaki artı okuna basabiliriz.
‫Ve bu fonksiyona adınızı yazdırın ve bu da adınızı yazdırsın adını vereceğim.
‫İşlev tam da bunu yapmalıdır.
‫Bu işlevin yürütülmesini başlatan bir düğümümüz olduğunu görebilirsiniz, böylece yürütme pimini
‫çekebilir ve print string yazabiliriz.
‫Bu yüzden çıktısı alınacak.
‫Merhaba.
‫Bu fonksiyonun adı tam olarak bu değil, değil mi?
‫Ama bunu birazdan çözeceğiz.
‫Yani burada sahip olduğumuz şey bir üye fonksiyon olarak bilinir.
‫Üye işlev, bir sınıfın belirli bir örneği üzerinde her zaman çağrılan bir işlevdir.
‫Bu yüzden tüm BP mermilerinin üzerine adınızı yazdıracağım demeyin.
‫Bir numaralı BP mermisini ya da yeni ortaya çıkan BP mermisini çağırmak, üzerine isminizi yazdırmak
‫istiyorum demelisiniz.
‫Dolayısıyla, seviye planımıza gidersek, yapmanız gereken şey BP mermisini ortaya çıkarmaktan çıkan
‫referansı almaktır.
‫Ve bu referanstan adınızı yazdır diyebilirsiniz ve otomatik olarak Hedef adlı özel bir giriş düğümüne
‫bağlandığını görebilirsiniz.
‫Ve tabii ki yürütme pimlerini de bağlamanız gerekiyor.
‫Reklam dürtüsünden sonra gerçekleşmesi için onu bağlayacağım.
‫Ancak bu özel hedef giriş düğümüyle ilgili ilginç olan şey, BP mermisine giderseniz, bu baskıyı göreceksiniz.
‫Adınızın böyle bir giriş düğümü yok.
‫Peki burada neler oluyor?
‫Dolaylı olarak, herhangi bir üye fonksiyonun mevcut hedefi veya mevcut örneği olan bir parametresi vardır.
‫Bunu blueprint olay grafiğine sağ tıklayıp self yazarak elde edebilirsiniz.
‫Burada get a reference to self adında bir düğüm olduğunu ve bu düğümün aşağıdaki gibi bir self düğümü oluşturduğunu görebilirsiniz.
‫Daha sonra bu self nesne referansını kullanarak bu nesne üzerindeki herhangi bir özelliğe erişebilirsiniz.
‫Dolayısıyla, BP mermimizin adını öğrenmek istersek, daha önce yaptığımız gibi, öz referanstan
‫çekip get display name yazabilirsiniz.
‫Ve sonra görünen adı yazdırma dizemize bağlayabilirsiniz.
‫Şimdi oynadığımızda ve yeni bir mermi ateşlediğimizde, merminin adını yazdırdığını görebilirsiniz ve
‫oluşturduğum her yeni mermi için adın farklı olduğunu görebilirsiniz, çünkü üye işlevi
‫tarafından atıfta bulunulan öz farklı bir özdür ve farklı bir mermidir.
‫Böylece self'in üye fonksiyonların içinde bulunan ve her zaman kullandığımız belirli mevcut örneği işaret
‫eden bir düğüm olduğunu öğrendik.
‫İlk etapta üye fonksiyonlara bakmamızın tüm amacı, başlamamızın nedeni,
‫seviye planındaki bu düğümler, statik ağı aldığımız yer, ileri vektörü alıyoruz ve
‫sonra bunlara bir dürtü ekliyoruz.
‫Bunlar BP mermisi üzerinde yaşamaları gerektiğini hissettiriyor.
‫İşte ben de size bunu yapmanız için meydan okumak istiyorum.
‫Yani bu biraz evrimleşmiş bir meydan okuma ama bölümün sonuna doğru geliyoruz.
‫Bu yüzden sizi adım adım yönlendireceğim.
‫Bu yüzden bir başlatma fonksiyonu yapacağız.
‫BP mermisinde Shin.
‫Bu yüzden BP mermisi üzerinde oluşturun.
‫Şu artı düğmesine git.
‫Yeni bir tane ekleyin, isim verin ve başlatın.
‫Ardından, seviye planındaki düğümleri kesip yeni oluşturduğunuz bu işleve yapıştırın ve yürütme
‫pinlerini vb. bağladığınızdan emin olun.
‫Şimdi bunu derlemeye çalışacaksınız, bunu planlarda çok sık yapmadık, ancak derleme, kodunuzu
‫esasen yazım denetimi yapmanıza ve Blueprint derleyicisinin öngörebileceği herhangi bir hata olmadığından
‫emin olmanıza olanak tanır.
‫Bunu yapmanın yolu, sol üstteki düğmeye gitmek ve derle düğmesine basmaktır; herhangi bir hata varsa, bunlar
‫altta derleyici sonuçları adı verilen küçük bölmede görünecektir.
‫Derlemenin başarılı olduğunu görebilirsiniz, ancak herhangi bir hata burada görünecek ve bazen hatanın nerede
‫olduğunu belirtmek için bir düğüm üzerinde biraz kırmızı renk alacaksınız.
‫Ve bu hatanın ne söylediğini anlamaya çalışıp çalışamayacağınızı ve öğrendiğimiz yeni self düğümünü kullanarak
‫hatayı düzeltip düzeltemeyeceğinizi görmek istiyorum.
‫Ve sonra devam etmeniz ve yazdırmamız için yaptığımız gibi örneği sürükleyerek seviye planından bu
‫işlevi çağırmanız gerekir.
‫Self düğümünüz, spawn düğümünden oluşturulan yeni mermi örneğinden sürüklenir ve fırlatma işlevini
‫çağırır.
‫Videoyu duraklatın ve deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Bu yüzden BP mermimize gideceğim, plan bölmemdeki fonksiyonların yanındaki artı
‫düğmesine basacağım ve seviye planımıza geri dönelim, düğümleri keselim ve BP mermisine gidip yapıştıralım
‫fonksiyonuna isim vermek için başlat yazacağım.
‫Şimdi impuls eklemek için başlatmadan yürütmeyi bağlamam gerekiyor ve şimdi derle düğmesine
‫basacağım ve statik ağda bir hata aldığımı veya statik ağ düğümünü aldığımı görüyorsunuz.
‫Derleyici sonuçlarına bakarsanız, geçersiz bir hedef kullandığını görürsünüz.
‫Dolayısıyla, buradaki girdiyi hedeflemek doğru değildir.
‫Şimdi yapmanızı önerdiğim gibi, sağ tıklayıp self yazarak self'e bir referans alabilir ve ardından bu self'i
‫hedefe getirebilirsiniz.
‫Şimdi tekrar derle tuşuna basarsanız hatanın ortadan kalktığını ve başarılı
‫bir şekilde derlendiğini görebilirsiniz çünkü artık bu başlatma işlevinin çağrıldığı mevcut mermiden statik ağ bileşenini
‫alabilmektedir.
‫Şimdi seviye planımıza geri dönersek, spawn aktörümüzden çıkış pinini alabilir ve launch fonksiyonumuzu
‫çağırmak için launch yazabiliriz.
‫Yürütme piminin benim için otomatik olarak bağlandığını görebilirsiniz ve başlatma işlevinden
‫sonra istersek adınızı yazdır işlevimizi bağlayabiliriz, ancak bu sadece hata ayıklama ve gösteri
‫amaçlıydı ve test ederseniz, hala başarıyla başlatıldığını görebilirsiniz.
‫Ancak şimdi fırlatma ile ilgilenen kod merminin kendisinde yaşıyor.
‫Harika bir şey.
‫Bu derste nesne yönelimli programlamanın temel kavramlarından biri olan üye fonksiyonları öğrendik.
‫Bir sonrakinde görüşürüz.