‫Merhaba ve hoş geldiniz.
‫Bu derste, sınıfımızdaki özelliklere varsayılan değerler vermemizi sağlayan
‫yapıcı adı verilen özel bir işlevi inceleyeceğiz.
‫Editörde arandığında göreceğiz.
‫Hadi içeri dalalım ve öğrenelim.
‫Şimdi, bu tetikleyici bileşenle, buraya bir tik bileşeni işlevi eklemek istiyorum, böylece
‫hangi bileşenlerin, hangi diğer aktörlerin şu anda bu tetikleyici bileşenle örtüştüğünü kontrol edebilir
‫ve doğru türde bir aktör olup olmadığını etkinleştirebiliriz.
‫Sorun şu ki, sorunun ne olduğunu göreceğiz.
‫Bir tik fonksiyonu uygulamaya çalışalım.
‫Bir tik bileşeni işlevinin bildiriminin nasıl olması gerektiğini görmek için grab H'ye gidersek,
‫bunun public bölümünde olması gerekir.
‫Sanal bir boşluk, tik bileşeni, delta zamanı.
‫Bir sürü parametre var, o yüzden kopyalayalım.
‫Tik bileşeni başlığına gidin, başlangıç oyunumuzun altına ekleyin ve ardından bu tanımı kopyalayıp
‫tetikleyici bileşenimize taşıyacağız.
‫CP Ve fark edeceğimiz bir şey de burada çıkarabileceğimiz birkaç anahtar kelime olduğudur.
‫Sanal anahtar sözcüğünü kaldırabiliriz.
‫Bu genellikle uyabileceğimiz bir kuraldır.
‫Ayrıca override anahtar sözcüğünü de kaldırabiliriz.
‫Bunlar C++ dosyasında olması gerekmeyen şeylerdir.
‫Sınıf adını eklememiz gerekiyor.
‫Böylece kolon bileşenini tetiklersiniz.
‫Kolon.
‫Ardından noktalı virgülümüzü parantezlerle değiştiriyoruz ve süper tik bileşenine çağrı yapmamız gerekiyor.
‫Bu oldukça uzun bir çağrı olduğu için CP'den kopyalayıp buraya yapıştıracağım.
‫Şimdi bunun yaptığı şey, esasen ebeveynin tik bileşeni işlevini çağırmaktır.
‫Yani bu durumda ebeveyn, kutu bileşenimizdir.
‫Dolayısıyla, bu bileşenin çalışması için kullanılması ve etkinleştirilmesi gereken herhangi bir işlev olması durumunda
‫bunu çağırmak önemlidir.
‫Bunu yapmazsak, esasen bu işlevselliği atlamış oluruz ve işler bozulabilir.
‫Başla, oyna ve işaretle bileşenini uygularken her zaman süper çağırmayı hatırlamak çok
‫önemli.
‫Şimdi günlük mesajımızı Begin Play'den kopyalayalım ve tick bileşenine koyalım.
‫Tick bileşeninin günlüğe kaydedildiğini söylemek ve Tick bileşeni burada tikliyor demek yerine, devam edip derleyeceğiz
‫ve derleyici bittiğinde bu tikin gerçekten çalışıp çalışmadığını göreceğiz, devam edip oynat
‫düğmesine basalım, çıktı günlüğümüzü açalım ve.
‫Şu anda hiçbir şey olmuyor gibi görünüyor.
‫Bunun nedeni, optimizasyon açısından çoğu bileşenin otomatik ve gerçek dışı olarak tiklerinin
‫kapalı olmasıdır.
‫Yani aktörler genellikle varsayılan olarak bunu açık tutarlar, ancak bileşenler genellikle bunu kapalı tutar.
‫Aslında, işaretlemenin işe yaradığını bildiğimiz hareketimiz gibi diğer bileşenlerden bazılarına
‫bakarsak, dosyanın en üstünde bunun olduğunu görebilirsiniz.
‫Bir fonksiyonu taşıyorsunuz ve bu birincil bileşene sahip tick dot B, sınıfta bu özelliği ayarlamazsanız her
‫zaman tick eşittir true olabilir.
‫Yani bu, klasik birincil bileşen tick'in bir özelliği olarak sınıfın bir özelliğidir
‫ve içinde B can ever tick özelliği olan bir yapıdır.
‫Yani burada yaptığımız şey, mover sınıfını oluştururken bu varsayılan değeri ayarlamaktır.
‫İşte bu işlev budur.
‫Buna yapıcı denir ve varsayılan değerleri otomatik olarak ayarlamak için yeni bir taşıyıcı bileşen oluşturduğumuzda çağrılan
‫bir fonksiyondur, should move move time ile yaptığımız gibi başlık dosyasında bazı varsayılan değerler
‫ayarlayabiliriz.
‫Ancak bunu başlık dosyasında yapmanın alternatifi, bu özellikleri aslında yapıcıda ayarlayabilmemizdir.
‫Şimdi burada sözdizimine dikkat etmenizi istiyorum, bir başlık dosyasını taşıyacağız.
‫Bir kurucunun sınıfla tamamen aynı şekilde adlandırıldığını görebilirsiniz.
‫Yani you mover, taşıyıcı bileşenimizin sınıf adıdır ve kurucusu da you mover notice olarak adlandırılır.
‫Dönüş türü de yoktur.
‫Yeni bir nesne oluşturduğumuz için herhangi bir şey döndürmek mantıklı değildir.
‫Biz sadece bu sınıfı gerçekleştiriyoruz.
‫İhtiyacımız olan tek şey bu sınıfın özelliklerine erişmek ve ayrıca public olarak ayarlandığına dikkat etmektir.
‫Bu yüzden sınıf tanımımızın public bölümünde yer alır.
‫Bu yüzden sizi kendiniz için işaretlemeyi etkinleştirmeye davet ediyorum.
‫Bu nedenle, başlıkta bir kurucu oluşturacak ve hem taşıyıcı H'de hem de çok sayıda
‫H'de gördüğümüz sözdizimini aklınızda tutarak, CP dosyalarındaki diğer bileşenlerde gördüğümüz gibi işaretlemeyi
‫etkinleştireceksiniz.
‫Yani bunun nasıl yapıldığını kopyalayabilirsiniz.
‫Ne zaman çağrıldığını denemek ve görmek için kurucudan da günlük tutabilirsiniz?
‫Oyuna başlamak gibi mi?
‫Yoksa oyun başlamadan önce mi çağrılıyor?
‫Videoyu durdurun ve bir deneyin.
‫Kay.
‫Tekrar hoş geldiniz.
‫Bu yüzden trig bileşenlerine gireceğiz ve burada yeni bir genel bölüm oluşturacağız.
‫Sonundaki iki nokta üst üste işaretini hatırlıyoruz ve sonra onu sınıfla tamamen aynı şekilde çağırmamız gerekiyor.
‫Yani bu tetikleyici bir bileşen değildir.
‫Tetikleyici siz değilsiniz, tetikleyici bileşen tam olarak sizsiniz.
‫Ve sonra bu kurucu için herhangi bir argümanımız yok, bu yüzden sadece boş parantezler ve ardından satırın sonuna
‫bir noktalı virgül koyuyoruz.
‫Şimdi CPP dosyasına geçebilir ve uygulamayı burada yapabiliriz.
‫Yine, bir dönüş türüne ihtiyacımız yok.
‫Yani sadece iki nokta üst üste bileşenini tetikliyorsunuz, iki nokta üst üste bileşenini tetikliyorsunuz, biraz tekrarlı, ama çalışma
‫şekli bu.
‫Sonra küme parantezleri koyarız ve burada sınıf örneğine varsayılan değerleri vermek için herhangi bir
‫ayar kodumuzu yapabiliriz.
‫Dolayısıyla, bir CPP'yi ele geçirip ne yaptığına bakarsak, birincil bileşeni olan tick
‫dot B'nin her zaman true değerine eşit olduğunu görebilirsiniz.
‫Bunu yazalım.
‫Birincil bileşen kene noktası B hiç kene olabilir.
‫B, boolean türü true değerine eşit olan ve küçük t harfi ile yazılan şeyler için sıklıkla kullandığımız bir önektir.
‫Bu nedenle, bir kurucuda yapılan değişiklikler canlı kodlamada her zaman düzgün bir şekilde yayılmadığından, editörü
‫kapatacağım.
‫Visual Studio kodu içinden yeniden oluşturacağım, ardından EU proje dosyasından yeniden başlatacağım.
‫Bu tamamlandığında, devam edip oynat düğmesine basacağım, çıktı günlüğümüze bir göz atacağım ve yeterince eminim,
‫tetikleyici bileşenin tıkladığını görebiliyoruz.
‫Bu nedenle, can sıkıcı olduğu için bu günlük mesajını kaldıracağım ve Visual Studio kodundaki çıktı
‫günlüğünü kapatacağım, tik bileşenindeki bu günlük mesajını kaldıracağım.
‫Şimdi çalıştığını görebiliyoruz.
‫Yapmak istediğimiz şey, kurucumuzda bir günlük oluşturmaktır.
‫Şimdi yeni bir günlük oluşturalım ve canlı kodlamanın bu sefer bunu yakalayıp yakalayamayacağını görelim
‫ve ardından çıktı günlüğümüze gidip hemen bir göz atalım.
‫Burada hiçbir şey görünmüyor.
‫Peki, devam edip oynat tuşuna bastığımda çıktı günlüğüme bir göz atıyorum.
‫Tetikleyici bileşenin canlı olduğuna dair günlük mesajını görebiliyorum ve bundan çok önce.
‫Aslında, sadece dünyayı yaratırken çok ileride inşa ettiğini görebilirsiniz.
‫Açıkçası oyuna başlamadan önce çok erken inşa etmeye başlıyor çünkü oynamaya başlamadan önce tüm dünyayı hazır
‫hale getirmemiz gerekiyor.
‫Yani oynat tuşuna bastığımızda gerçekleşiyor ama aslında editörde de gerçekleşiyor.
‫Burada bir aktör seçip ona bir bileşen eklersem ve tetikleyicimizi eklersem, çıktı günlüğüme
‫bir göz atın.
‫Ardından yapı mesajının gerçekten yazdırıldığını görebilirsiniz.
‫Bu yüzden kurucularımızda ne yaptığımıza dikkat etmeliyiz çünkü aslında C++ kodu sadece biz düzenleme
‫yaparken çağrılıyor, oyunumuzu oynamıyoruz bile.
‫Bu nesneler oluşturulmakta ve dolayısıyla ayarlanmaktadır ve bu nedenle kurucularının çağrılması gerekir.
‫Devam edip tetikleyiciyi tekrar sileceğim ve oluşturma günlük mesajımızı ve oynatmaya
‫başlama günlük mesajımızı da kaldırarak biraz temizleyeceğim.
‫Harika bir şey.
‫Bu derste kendi bileşenlerimizi, sahne bileşenleri ve ACT bileşenleri için şablonlarda oluşturulanlarla neredeyse
‫aynı olacak şekilde nasıl ayarlayabileceğimizi gördük, sınıfımızdaki özelliklere
‫varsayılan değerler vermek için bir yapıcıyı nasıl kullanacağımızı gördük.
‫Bir sonraki derste görüşürüz.