‫Merhaba ve hoş geldiniz.
‫Bu derste, üst üste binen aktörlere dizi adı verilen bir şeyle erişeceğiz, böylece
‫bu birimin içinde gördüğümüz aktörleri tamamen C++'dan yazdırabileceğiz.
‫Hadi içeri dalalım ve nasıl yapıldığını görelim.
‫Önceki benzetmelerde olduğu gibi, bir tipin veya değişkenin içine değer koyduğumuz bir kutu olduğunu düşünelim.
‫Şimdi, kaç değer depolamak istediğimizi bilmiyorsak ne olur?
‫Çok sayıda değişken yaratabiliriz.
‫Eğer beş tane olacağını bilseydik, beş değişken oluşturabilirdik.
‫Peki ya seviyemizdeki aktör sayısı veya belirli bir tetikleyici hacmiyle örtüşen aktörler
‫gibi tahmin edilemeyecek kadar çok olan bir şeyimiz varsa?
‫Bu durumda, Unreal'da T dizisi olarak adlandırılan ve temelde belirli bir türde bir T dizisi olan yeni bir veri türü kullanmamız
‫gerekir.
‫Burada yine, daha önce de söylediğimiz gibi derleme zamanı parametreleri olan bu köşeli parantezleri görüyoruz.
‫Ve bu sefer, yine, dizimizde hangi türü saklayabileceğimizi söyleyen bir tür alıyoruz.
‫Bir dizi, birden fazla kutuya sahip olması ve oyunumuzu oynarken sahip olduğumuz kutu sayısının farklı olabilmesi
‫dışında bir değişken gibidir.
‫Değişebilir.
‫Oyunda ilerledikçe daha fazla veya daha az ekleyebiliriz.
‫Bir şeyler üst üste binmeye başladığında, üst üste binen bölgeyi terk eden şeyler olarak daha fazla kutu ekleriz.
‫Onları götürürdük.
‫Ve dediğim gibi, bu, bunların içindeki bir parametredir.
‫Köşeli parantezler.
‫Örneğin, bu kutularda farklı tamsayıları depolayacak bir tepsi ints olabilir.
‫Aktör işaretçilerinden oluşan bir tepsimiz olabilir ve bu aslında dünyadaki aktörlere işaret eden kutulardaki
‫işaretçileri depolayacaktır.
‫Ve gördüğünüz gibi, bunlar üst üste bile gelebilir.
‫Yani bu işaretçilerden bazıları aynı aktörlere işaret ediyor.
‫Şimdi, pratikte bu çok kullanışlı olmazdı, ama kesinlikle mümkün.
‫Bu yüzden ilkel bileşenin belgelerini tekrar gözden geçirmek istiyorum, çünkü
‫burada aradığım şey örtüşen aktörleri al adlı bir işlev.
‫Örtüşen aktörleri al işlevine bakarsanız, bunun birkaç versiyonu olduğunu görürsünüz.
‫Ama benim için en ilginç olanı ikincisi.
‫Geri dönüş değeri yoktur, boş bir geri dönüş değeridir.
‫Ancak buradaki ilk parametrenin, sonunda bir ve işareti olan aktör işaretçilerinden oluşan bir t dizisi olduğunu
‫görebilirsiniz, yani tüm bu şey bir t dizisine referanstır.
‫Şimdi bunun sabit bir referans olmadığına dikkat edin, bu nedenle bu parametrenin aslında bir out parametresi olduğunu varsayabiliriz.
‫Bize örtüşen aktörlerin sonucunu verir ve şu anda hangi aktörlerin ilkel bileşenimizle
‫örtüştüğünü söyler.
‫Şimdi kutu bileşenimizin ilkel bir bileşen olduğu ortaya çıktı.
‫Dolayısıyla tetikleyici bileşenimiz de ilkel bir bileşendir.
‫Peki bu işleve kimin erişimi olacak?
‫Burada ikinci bir argüman var, ancak bunun hakkında endişelenmemize gerek yok çünkü kullanırsak aslında
‫varsayılan bir değeri var.
‫Şimdi devam edelim ve aktör işaretçilerinden oluşan bir tepsiyi ele geçirmeye ve doldurmaya çalışalım.
‫Tetikleyici bileşene gireceğiz.
‫CP Kene bileşenine ineceğiz.
‫Ve burada, bu fonksiyonu kullanarak doldurabileceğimiz boş bir t dizisi oluşturacağız.
‫Yani sözdizimi t dizisi açık açılı parantezler a aktör yıldızıdır ve aktör işaretçilerinden oluşan bir t dizisine sahip olduğumuzu söyler,
‫açılı parantezleri kapatır ve ardından bu değişken adını aktörler olarak verebiliriz.
‫Daha sonra çakışan aktörleri almak için çağırırız ve aktörler dizisini iletiriz.
‫Şimdi.
‫Bunu neden geri dönüş değeri olarak iletmediklerini bilmiyorum ama.
‫Al bakalım.
‫Bu da bize bu parametreleri biraz daha fazla kullanma fırsatı veriyor.
‫Şimdi, bunların hepsi iyi ve güzel.
‫Bir dizi içinde bazı aktörlerimiz var.
‫Değişken bir uzunlukları var.
‫Birkaç tane olabilir.
‫Sıfır olabilir.
‫Bunun gibi dizilerle ne yapacağız?
‫Peki, dizide kaç öğe olduğunu sorgulayabiliriz.
‫array, dot num parantezlerini kullanabilir ve dizide kaç öğe olduğunu söyleyen bir tamsayı döndürebilirsiniz.
‫Yani bu özel dizide beş tane olduğunu söyleyebiliriz ve daha sonra bu köşeli parantezleri kullanarak
‫bu dizinin içindeki öğelere erişebiliriz.
‫Ve sonra köşeli parantezler içine aktardığınız sayı size hangi öğeyi alacağınızı söyler.
‫Ve birçok programlama dilinde dizilerde saymaya sıfırdan başlamak olağan bir kuraldır.
‫Yani bir dizinin sıfırıncı elemanı ilk elemanıdır, bir dizinin bir elemanı ikinci elemanıdır, vb.
‫Ve böylece son elemanın dizideki eleman sayısından her zaman bir eksik olmasıyla sonuçlanır.
‫Peki bu bilgiyi nasıl kullanabiliriz?
‫Örneğin, yalnızca birden fazla aktör varsa çakışan aktörleri yazdırabiliriz.
‫Peki bunu nasıl yapacağız?
‫Eğer aktörün nokta sayısı parantezleri sıfırdan büyükse, o zaman burada aktörlerimizin sıfır elemanına erişmek
‫gibi bir şey yapabiliriz, çünkü sıfırdan büyükse, orada en az bir eleman olması
‫gerektiğini biliyoruz.
‫Yani bu dizinin sıfırıncı elemanında bir şey olmalı.
‫Dizinin ilk elemanının, yani bir elemanının içinde bir şey olduğunu ya da iki elemanının içinde bir şey
‫olduğunu garanti edemezdik.
‫Bunu yapmak için dizide yeterince öğe olup olmadığını kontrol etmemiz gerekir, ancak burada ilkinin
‫olduğunu kesinlikle biliyoruz.
‫Şimdi sizi bu diziden üst üste binen ilk aktörü yazdırmaya davet edelim.
‫Bu köşeli parantezleri kullanarak işaretçiyi almak için diziyi kullanın.
‫Daha sonra bu işaretçiyi çağırmak, aktör, isim veya etiket almak için kullanacak ve ardından bunu yazdıracak,
‫videoyu duraklatacak ve deneyeceksiniz.
‫Hey, tekrar hoş geldin.
‫Böylece bu köşeli parantezleri kullanarak işaretçiyi burada tutabiliriz.
‫Daha sonra ok operatörünü kullanarak ve get actor, name veya label'ı çağırarak
‫doğrudan isme ulaşacağım.
‫Ve bunu aktör adı adında bir F string değişkenine koyacağım.
‫Ardından, üst üste binen iki nokta üst üste olarak adlandıracağımız bir U günlüğü yapacağız.
‫Ve sonra yüzde s.
‫Ve buradaki ikinci argüman yıldız işareti, aktör adı olmalıdır.
‫Sonra yeniden derleyebilir, düzende çıktı günlüğü dosyamıza atlayabiliriz.
‫Sonra BPP gizli duvarını açacağız çünkü bu dizeyi yazdırarak işleri karıştırmak
‫istemiyorum.
‫Blueprint'te bunu şimdi C++'dan yapıyoruz, bu yüzden zindan seviyesine geçip oynat düğmesine basalım.
‫Ve açıkçası şu anda o aktörle örtüşen hiçbir şey yok.
‫Peki gidip içeri girersek ne olur?
‫Anında yazdırmaya başladığını ve bip sesi oynatıcısının üzerine bindiğimizi görebilirsiniz.
‫Harika bir şey.
‫Ya onun yerine gidip gargoyle'u alsaydık?
‫Oyuğa götür, içine sok ve işte oldu.
‫Gargoyle heykeliyle örtüştüğü yazıyor.
‫Harika bir şey.
‫Böylece, aktörlerin bir listesini almak için bir t dizisini nasıl kullanacağımızı ve bu listede kaç tane şey olduğunu
‫ve bu listeden belirli bir öğeyi nasıl ele geçireceğimizi öğrendik.
‫Bir sonraki derste, değişken sayıda görevi yerine getirmek için değişken
‫sayıda şeyle uğraşmamızı sağlayan bazı programlama yapılarına bakacağız.
‫Orada görüşürüz.