‫Merhaba ve hoş geldiniz.
‫Bu derste, vektörlere ve genel olarak C++'daki struct'lar gibi daha karmaşık şeylere
‫ve bir struct'tan bunları hem ayarlamak hem de almak için ayrı parçalara nasıl erişebileceğimize bakacağız.
‫Hadi içeri dalalım.
‫Böylece C++'da temel veri türleriyle nasıl başa çıkacağımızı, değişkenler oluşturmayı, onlara atama yapmayı ve hatta onlarla bazı temel
‫aritmetik işlemleri yapmayı öğrendik.
‫Peki ya vektörler ve dönüşümler gibi daha karmaşık türlerle uğraşmak istersek ne olacak?
‫Aslında süreç birbirine çok benziyor.
‫Halihazırda sahip olduğumuz bazı test kodlarını temizleyerek başlayalım.
‫Tüm mülklerimi sileceğim.
‫Benim için bu 26'dan 51'e kadar olan hat.
‫Ayrıca C++ dosyasına geçeceğim ve az önce sildiğim değişkenlerle ilgili tüm işleri yaptığım
‫19 ila 23. satırları sileceğim.
‫Yani şimdi Begin Play tamamen boş ve aslında en başa döndük.
‫Şimdi yapmak istediğim şey yeni bir you özelliği eklemek.
‫Bu yüzden herhangi bir yeri tekrar büyük harflerle düzenleyin ve buna F vektörü türünü vereceğim, büyük F, büyük V harflerine dikkat
‫edin ve Blueprint'te ele aldığımız vektörlerle bu şekilde başa çıkacağız.
‫Bunlar yüzey altında aynı vektörlerdir, ancak C++'da bu şekilde yazıyoruz.
‫Ondan önce gelen F sadece bunun bir yapı olduğunu bilmemizi sağlar, aynı şekilde hareketli platformu takip
‫eden A da bunun bir aktör olduğunu bilmemizi sağlar.
‫Bu C++ ile ilgili bir şey değil.
‫Bu, farklı sınıfları, yapıları ve türleri adlandırmak için gerçek olmayan bir adlandırma kuralıdır.
‫O zaman yapacağımız şey bu değişkene bir isim vermektir ve bu değişken bir float ya da
‫int ile aynı şekilde çalışır.
‫Örneğin buna benim şamandıram diyebiliriz.
‫Hiç boşluk olmamalıdır.
‫Ve eğer burada satırın sonuna noktalı virgül koyarsak, o zaman bu kadar.
‫Editördeki ayrıntılar bölmemizde görülebilecek yeni bir değişken bildirdik, ancak bu benim için yeterli
‫değil.
‫Aslında buna varsayılan 000 değerinden farklı bir varsayılan değer vermek istiyorum.
‫Bunu yapmak için sözlüğümüzü yeni bir terimle güncellememiz gerekiyor.
‫C++'da yeni bir yapı veya sınıf değeri oluşturan bir yapıcıya ihtiyacımız var.
‫Vektör için bir kurucu oluşturacak olsaydık, bunun çalışma şekli bir değer atamak istememizdir, böylece equals
‫tuşuna basarız.
‫Ve tipik olarak tamsayılar veya kayan sayılarla uğraşırken, sadece bir veya doğru gibi bir şey kullanabilirdik.
‫Bu temel tiplerin değerini ayarlamamızı sağlayan yerleşik değerler vardı.
‫Ancak struct gibi daha ayrıntılı türlerimiz olduğunda, yapıcıyı kullanmamız gerekir ve yapıcı her
‫zaman veri türüyle aynı ada sahip olacaktır.
‫Böylece f vektörü tam olarak aynı şekilde yazılır ve sonra bazı parantezler açarsınız ve parantezlerin
‫içinde istediğiniz değerleri verirsiniz.
‫Yani X, Y ve Z bir vektörü oluşturur.
‫Yani bir, iki ve üçü virgülle ayırabiliriz ve sonra parantezleri kapatıp satırın sonuna
‫noktalı virgül koyarız.
‫Bu da bu vektör için X, Y ve Z'de bir, iki ve üç varsayılan değerlerini verecektir.
‫Hadi deneyelim.
‫Unreal'a geri dönün ve derleme düğmesine basın.
‫Bu işlem başarıyla tamamlandığında, aykırı değerimizde hareketli platform aktörünün seçili olduğundan emin olabilir ve
‫ayrıntılar bölmesine bakarak gerçekten de My Float adında yeni bir özelliğe sahip olduğumuzu görebiliriz.
‫Diğerleri çıkarılmış ve farklı X, Y ve Z konumlarındaki değerler tam da beklediğimiz
‫gibi bir, iki ve üçtür.
‫Yani bu harika.
‫Peki ya bu değerleri ele geçirmek ve belki de başka bir mülke yapıştırmak istersem?
‫Bu nedenle, herhangi bir yerde düzenle olarak işaretlenmiş başka bir özelliğim varsa, bunu denetçide
‫görebilmemiz için float türünde x'im olarak adlandıracağız ve değiştirdiğimizi görebilmemiz için bunu sıfır olarak varsayacağız.
‫Ve yapmak istediğim şey, begin play'deki my float'tan x değerini almak ve bunu my x değişkenine ayarlamak
‫istiyorum.
‫Şimdi C++ dosyasına gidelim ve begin play'de super big in play yazan satırdan sonra, x'imi vektörümden
‫bir şey almak istediğimiz şeye eşit olarak ayarlayacağız, ancak vektörümün tamamını istemiyoruz.
‫Bu bir hata olur.
‫Bir vektörü float olarak ayarlayamayız, sadece o vektörün x kısmını istiyoruz.
‫Bunu anlamak için operatör kavramını anlamamız gerekir.
‫Operatörler, C++'da bir şey yapan sembollerdir.
‫Zaten birkaç tane gördük.
‫İki şeyi birbirine ekleyen artı operatörünü gördük.
‫Ayrıca bir eksi operatörü de vardır.
‫Atama yapan eşitlik operatörü, equals operatörü vardır.
‫Şeyler.
‫Bunu tam burada 19. satırda kullanıyoruz.
‫Bu, vektörümün değerini X'ime atayan bir operatördür.
‫Ve sonra bir operatörümüz daha var, ki bunun DOT operatörü olduğunu bilmemiz gerekiyor.
‫Bir struct veya sınıf içinden bir şey alan bir operatördür.
‫Bu yüzden X'i vektörümün içinden almak istiyoruz.
‫Yani bir nokta operatörü kullanıyoruz, x'i noktalıyoruz, şimdi burada my vektörü ile x arasında bir boşluk kullanmıyoruz.
‫Boşluk bırakmak bir hata olmasa da genellikle bu şekilde
‫bırakırız.
‫Yani x vektörüm var, vektörün x değerini almalı ve bunu x float'ıma koymalıyız.
‫Bu yüzden satırın sonuna noktalı virgül koyuyoruz ve her zamanki gibi kırmızı dalgalı çizgileri görmezden geliyorum çünkü bazen
‫güncellenmeleri uzun zaman alıyor ve bazen doğru olmuyorlar.
‫Daha sonra canlı kodlamaya geçip yeniden derleme düğmesine basacağız ve başarılı bir sonuç alıp almadığımızı
‫kontrol edeceğiz.
‫Ve hayır, görüyorsunuz, bir yapı hatası var.
‫Ve hataya bakarsanız, vektörümün bildirilmemiş bir tanımlayıcı olduğunu ve bunun yazım hatası yaptığım
‫için olduğunu söylüyor.
‫F vektörüne benim float'ım dedim ve muhtemelen ekranlarınızda çığlık atıyorsunuz, ancak size deneyimli
‫programcıların bile hata yaptığını göstermek iyi oldu.
‫Bunu benim vektörüm olarak adlandırmak istedik, bu yüzden başlık dosyasına geri döneceğim
‫ve vektörüm olarak yeniden adlandıracağım, bu da beynimdeki sorunu ortadan kaldıracaktır.
‫Devam edelim ve tekrar derle düğmesine tıklayalım.
‫Bu da size hata yaptığınızda derleme hatası almanın nasıl bir şey olduğunu gösteriyor.
‫Bu her zaman olur.
‫Aslında, hata yapmamak çok nadir görülen bir durumdur.
‫Bir şeyi ilk kez yaptığınızda, devam edip oynat düğmesine basacağız ve ayrıntılar bölmesinde hangi değeri elde
‫ettiğimizi göreceğiz.
‫Şimdi x değerimin bire ayarlandığını görebilirsiniz çünkü vektör değişkenimin x bileşenindeki değer
‫buydu.
‫Bu yüzden sizi bir vektör değeri belirlemeye davet ediyorum.
‫Vektörden değerler alıyorduk.
‫Şimdi bunları ayarlamayı deneyelim.
‫Temel olarak bir değer ayarlamak için nokta operatörünü kullanmayı deneyin.
‫Bu eşitliğin iki tarafını çevirmeyi deneyin, böylece benim X'im sağda ve benim vektörüm solda
‫olsun.
‫Peki ya bunu Y ya da Z olarak değiştirirseniz?
‫Arada bir fark var mı?
‫Videoyu duraklatın ve deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Bu yüzden bu ikisini değiştirmeyi deneyeceğim.
‫C++'a geçelim ve Begin Play'de bunun yerine söyleyeceğim şey vektör nokta y'm x'ime eşittir ve sonra
‫satırın sonuna noktalı virgül koyalım.
‫Ve bir yapı içinde de değerleri bu şekilde ayarlayabiliriz.
‫Şimdi Unreal'a geri dönelim ve yeniden derleyelim ve sonra devam edip X'imde bazı değerler ayarlayabiliriz.
‫Bu yüzden buraya beş değerini koyacağım.
‫Sonra devam edeceğim ve hareketli platformun ayrıntılar bölmesine bir göz atacağım.
‫Ve tabii ki, vektörümün y değeri begin play'de x değerimdeki değerle güncellendi.
‫Tebrik ederim.
‫C++'da struct'lar gibi bileşik tipler olan daha karmaşık tiplerin nasıl kullanıldığını gördük.
‫Bir sonraki derste görüşmek üzere.