‫Merhaba ve hoş geldiniz.
‫Bu derste, grab fonksiyonumuzu daha küçük ve okunabilir hale getirmek için kodumuzu yeniden düzenleyeceğiz.
‫Ve yine parametrelerimizi kullanacağız.
‫Bu sefer, aslında onu parametre olarak alan bir fonksiyon oluşturacağız.
‫Şimdi bunu nasıl yapacağımızı görelim.
‫Bu nedenle, işlevlerin tek bir ekrana sığdırılmaya çalışılması genellikle en iyi uygulamadır.
‫Şimdi, benim durumumda, ekranım çok büyük, ancak hala öğreniyoruz, bu yüzden aslında işleri anlaşılır
‫kılmak için daha küçük işlevlere sahip olmak mantıklı.
‫Bence bu yakalama işlevi çok uzadı, bu yüzden onu oldukça işlevsel iki birime ayırabiliriz.
‫İlki, taramayı yapan ve başlangıç ve bitiş vektörlerinin tüm hesaplamalarını yapan ve isabet sonucunu
‫ve isabet edip etmediğimizi, isabet edip etmediğimizi söyleyen boolean çıktısını veren bit olacaktır.
‫İkinci kısım ise if deyiminin içinde yer alır ve muhtemelen yakalama işi olarak bırakabiliriz çünkü
‫bu aslında yakalama ile ilgilidir, değil mi?
‫Sert gövdeyi uyandırmalıyız.
‫grab adlı bir işlevde çağrılan bir yöntemde olması mantıklı olan bir bileşeni yakalamamız gerekiyor.
‫Ama bu diğer şeyler biraz daha teğet geçiyor.
‫Bu daha çok içeri çekmemiz gereken bir yardımcı program.
‫Bu yüzden sizi bu faydayı yaratmaya, erişilebilir hale getirmeye davet ediyorum.
‫Bence böyle adlandırılmalı.
‫Sanırım bu, o kod yığınının ne yaptığını açıklıyor.
‫Bu yüzden tüm bu süpürme kodunu yeni bir özel fonksiyona alın.
‫Parametrelerinin ve dönüş değerlerinin ne olması gerektiği hakkında düşünün.
‫Unutmayın, iki çıkışınız var.
‫Yani vurduk ve sonuç aldık.
‫Bu nedenle, bu işi yapmak için bir out parametresi kullanmayı düşünmeniz gerekir.
‫Şimdi, eğer biraz ipucu istiyorsanız, size birazdan başlık dosyasına ne koyacağımı
‫göstereceğim.
‫Eğer bilmiyorsanız, hemen şimdi gidip bir videoyu duraklatabilirsiniz.
‫Aksi takdirde, sana ipucu vereceğim.
‫Bu yüzden grab H'ye gireceğiz ve get physics handle'a sahip olduğumuz yerin altında, bir şey
‫alıp alamayacağımızı bize söyleyen bir Boolean dönüş türüne sahip olacağız,
‫bir top alalım, grab a ball'a ulaşalım.
‫Daha sonra ona out parametresi olacak bir parametre vermemiz gerekir.
‫Bu yüzden F isabet sonucuna sabit olmayan bir referans olacaktır.
‫Bir referans koy.
‫Ampersand ve sonra buna alt vuruş sonucu diyeceğiz.
‫Ve sonra bunun işlevimizde hiçbir şeyi değiştirmeyeceğini düşünüyorum, böylece bunu da maliyetli hale getirebiliriz.
‫Bunu zaten düşünmüş olmanız küçük bir bonus puan.
‫Şimdi devam edin, videoyu duraklatın ve C++ dosyasındaki bu işlevi doldurmayı deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫O yüzden kopyalayacağım.
‫C++'a git.
‫Başlık dosyasındaki sıralamaya uyması için bunu Get Physics Handle bileşenimizin altına
‫koyacağım.
‫Ön tarafa U tutucu ekleyeceğim.
‫Doğru şekilde girintileyeceğim.
‫Noktalı virgül yerine parantez ekleyeceğim ve ardından elimizdeki kodu grab'e
‫taşıyacağım.
‫Benim için 53. satırdan başlayarak 65. satıra kadar, bunların hepsini keseceğim ve bir saniye içinde yerine bir
‫şey koyacağız.
‫Topu yakalamak için yapıştıracağım ve oluşturduğumuz bu isabetli sonucu elde edeceğiz.
‫Yapabileceğimiz şey, bu isabet sonucunu burada elde ettiğimiz isabet sonucumuza eşit olarak ayarlamaktır.
‫Bunu sadece vurduğumuzda yapmak isteyebiliriz.
‫Bu nedenle, if deyimini bu şekilde koyabilir ve bu atamayı, if deyiminin içindeki isabet sonucuna dışarı isabetini sarabiliriz
‫ve sonra devam edebilir ve fonksiyonun sonunda sadece isabet etti gibi döndürebiliriz,
‫şimdi burada yapılabilecek bir optimizasyon veya iyileştirme var çünkü referansla süpürme
‫kanalına ve ulaşılan topu tutmaya geçiyoruz.
‫Aslında burada yeni bir isabet sonucu oluşturmamıza ve ardından bunu isabet sonucuna kopyalamamıza gerek yok.
‫Bu sadece hafızayı boşa harcamak.
‫Yapabileceğimiz şey, içeride oluşturduğumuz isabet sonucunu kaldırabilir, reach'te bir
‫top yakalayabilir ve bunun yerine doğrudan sweep single by channel'a geçmek için içeri aktardığımız referansı kullanabiliriz.
‫Yani aslında bu referansı, doldurulacağı kanala göre tekli süpürme işlevine aktarıyor
‫ve bu da if deyimine olan ihtiyacı ortadan kaldırarak bu işlevi biraz daha hızlı ve okunması
‫kolay hale getiriyor.
‫Ve aslında, isabet oranını saklamak için bir değişkene bile ihtiyacımız olduğunu sanmıyorum.
‫Devam edip geri dönebiliriz.
‫Get world süpürme kanalı sonuçlarını döndürmek çok daha temiz olacak.
‫Bu nedenle, buradan elde edilen sonuçları get grab able in reach'e ya da her kim çağırıyorsa ona
‫iletiyoruz.
‫Kimin aradığından bahsetmişken, şimdi kepçemize çıkmamız gerekiyor.
‫Hit sonuçlarımızı bir yerde oluşturmamız gerekiyor.
‫Onu burada yaratmalıyız.
‫Bu yüzden sonucu vurun, bu dolduracağımız sonuçtur.
‫Daha sonra bir boolean değişkeni oluşturacağız ve bu değişkeni ulaşılabilecek şekilde yakalamak
‫için eşit olarak ayarlayacağız.
‫Ve doldurulmasını istediğimiz isabet sonucunu referans olarak ileteceğiz.
‫Ve sonra isabet edersek, devam edeceğiz ve yakalama kodunu çalıştıracağız.
‫Harika bir şey.
‫Bu yakalama işlevini tek bir ekrana sığdırmak için bir şeyi bir işlevin içine taşıdık.
‫Ve yine parametreleri kullandık, bu kez kendimiz için onları ciddi bir şekilde kullanan bir fonksiyon
‫yarattık.
‫Bir sonraki videoda görüşürüz.