‫Merhaba ve hoş geldiniz.
‫Bu derste, yalnızca belirli bir fonksiyon içinde var olan değişkenler olan yerel değişkenler
‫kavramını inceleyeceğiz.
‫Ve konumumuzu vektörümde saklanandan farklı bir değere ayarlamak için bunu nasıl kullanabileceğimizi
‫göreceğiz.
‫Hadi içeri dalalım.
‫Bu noktaya kadar, bir sınıfa ait değişkenlerle uğraştık.
‫Bunu Blueprint'te yaptık ve şimdi de C++'ta yaptık.
‫Bu da değişkenin sınıfın örneği olduğu sürece canlı kalacağı anlamına gelir.
‫Her örnek bir değişkenin kendi kopyasını alır, ancak sınıf örneği hayattayken değişken iki
‫tanedir.
‫Şimdi, az önce bahsettiğim bu kavramın aslında bir adı var.
‫Buna Scope deniyor.
‫Bunun anlamı, değişkenin ne kadar yaşadığıdır?
‫Ve az önce bir sınıfın belirli bir örneği olduğu sürece yaşayan bir değişken olan bir örnek değişkeni
‫tanımladım.
‫Şimdi başka tür değişkenler de var.
‫Bir fonksiyon kadar uzun yaşayan değişkenler vardır.
‫Temel olarak belirli bir işlevi çağırdığınızda, bu işlev çalışır ve işlev biter
‫bitmez değişken ölür.
‫Yani C++'da, genel olarak konuşursak, bir değişken sözdizimindeki parantezler arasında geçerlidir.
‫Yani bu iyi bir kural.
‫Her zaman tam olarak doğru değildir, ancak örneğin tick fonksiyonu, burada bazı parantezlerimiz
‫var ve bu tick fonksiyonunun içinde bir değişken bildirirsek, o zaman sadece bir kez var olacaktır.
‫Tik fonksiyonu çağrılır ve bir sonraki sefer yeniden oluşturulur.
‫Hareketli platform.
‫Hareketli platforma bakarsak bunu görebiliriz.
‫H Vektörümün, sınıfın tanımına ait olan bazı küme parantezleri içinde bildirildiğini görebilirsiniz,
‫bu nedenle bu değişkenler sınıfın bir örneği olduğu sürece yaşar.
‫Bunu size kanıtlamak istiyorum.
‫Şimdi hareketli platform DHCP'ye girelim ve bunun içinde bir yerel değişken oluşturalım.
‫Bu yüzden onu aynen bizim yaptığımız gibi oluşturacağım.
‫Başlık dosyasında hata bildirirken, bir F vektörümüz olacak, sonra vektörün adı, ben
‫buna yerel vektör diyeceğim.
‫Ve sonra bunu oluşturduğumuzda bir değer olarak ayarlayabiliriz.
‫Bunu F vektörünün kurucusunu kullanarak yapabileceğimiz gibi, bir değişkeni bir fonksiyona aktarabildiğimiz
‫gibi başka bir değişkenden de yapabiliriz.
‫Bu yüzden öncelikle kurucu yöntemini kullanabiliriz.
‫F vektörümüz olacak ve ona 1'den 3'e kadar bir değer verip satırın sonunda noktalı virgül koyacağım.
‫Yani bu artık bir yerel değişkendir.
‫Yalnızca bu işlev içinde bulunur ve işlev her çağrıldığında sıfırlanır.
‫Eğer böyle bir şey yapacak olsaydım, 29. satırda vektörüm güncellenirken yaptığımız
‫gibi bir şey yapsaydım, yerel bir vektörümüz olabilirdi, yerel vektör z'nin yerel vektör nokta z artı bir'e eşit
‫olmasını sağlayabilirdik.
‫Ve eğer konumumu bu yerel vektöre ayarlarsam, her bir karede aynı olacaktır çünkü sıfırlanır
‫ve aynı konumdan başlarız.
‫Bir, iki, üç, her bir tik fonksiyonu.
‫Yani bu işlev gerçekten sadece yerel olarak mevcuttur.
‫Bu yüzden, yerel vektörü benim vektörümden ayarlamak için küçük bir deney yapmanızı istiyorum.
‫Yani temel olarak yapıcıdan ayarlamak yerine, o anda vektörümde bulunan
‫değerden ayarlayacaksınız.
‫Bu vektörün bir kopyasını yerel vektörünüze alacaktır.
‫Daha sonra yerel vektörü kullanarak konuma ayarlamanızı istiyorum.
‫Ve bu yerel vektörü her karede güncellemeye çalıştığımız için, etkinin ne olduğunu görelim.
‫Platform hareket ediyor mu?
‫Öyle olmasını bekler misiniz ve gidip dener misiniz, kodu derleyip oynatır mısınız ve gerçekten öyle olup olmadığını görür müsünüz?
‫Videoyu duraklatın ve deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Bu yüzden yerel vektörü ayarlamak için buradaki kurucuyu kullanmak yerine vektörümü
‫ayarlayacağım.
‫Yani şu anda benim vektörümde depolanan değeri alıyoruz ve bunu yerel vektöre koyuyoruz
‫ve ardından yerel vektörü güncelliyoruz.
‫Söylediklerini her karede bir artırıyoruz ve sonra aktör konumunu vektörümden
‫ayarlamak yerine yerel vektörden ayarlamak istiyorum.
‫Şimdi bu davada ne olacağını düşünüyorsunuz?
‫Hadi gidip öğrenelim.
‫Derleme düğmesine basacağım ve devam edip oynat düğmesine basacağım ve platformun
‫hala sağa doğru hareket ettiğini, ancak Z yönünde yukarı çıkmadığını göreceğiz.
‫Böylece, yerel vektörün artmasının gerçekten bir etkisi olmadığını görebilirsiniz
‫çünkü her karede vektörümdeki mevcut değerden sıfırlanıyor.
‫Ancak vektörüm hâlâ güncelleniyor.
‫Her karede y değeri artıyor, her karede.
‫İşte bu yüzden sağa doğru bir hareket görüyoruz.
‫Dolayısıyla, yerel vektördeki bu değişikliğin sadece yerel olduğunu görmenin bir yolu, bu değeri birden
‫belki 100'e çıkarmaktır.
‫Yani yerel vektör değerine 100 ekliyoruz.
‫Gidip derleyebilir ve ardından oynat düğmesine basabiliriz.
‫Ve göreceğiniz şey, platformun aslında havada 100 birim daha yüksekte olduğudur.
‫Burada bir saniye duralım ve F sekiz ile dışarı çıkalım ve ana araç çubuğundaki duraklatma düğmesiyle oyunu duraklatalım
‫ve ardından ayrıntılar bölmesinde bir göz atmak için hareketli platformumuzu seçelim.
‫Bunu yapmak için, bir nedenden dolayı görüntü alanında gerçekten üzerine tıklamam gerekiyor.
‫Bazen çalışmıyor, sadece anahatta üzerine tıklıyorum.
‫Ve size vektörümdeki değerin, vektörümdeki z değerinin, dönüşümün Z konumundan 100
‫birim daha az olduğunu belirtmek isterim.
‫Dolayısıyla, bu yerel vektörü eklemenin bir etkisi olduğunu görebilirsiniz.
‫Vektörümdeki konumdan 100 birim daha yüksek bir konumumuz var.
‫Yerel değişkenlerin gerçekten harika olan yanı, işlev belirli bir yürütmeyi tamamladığında temizlenmeleri
‫ve sıfırlanmalarıdır.
‫Böylece yerel bir değişkenden ne bekleyeceğinizi her zaman bilebilirsiniz.
‫Başka herhangi bir işlevden her an güncellenebilen bir sınıf değişkeninin aksine, içinde hangi değerin olacağını
‫her zaman bilirsiniz.
‫Bu yüzden birkaç ders sonra bu yerel değişkenleri test edeceğiz.
‫Hadi dalalım.