﻿1
00:00:04,340 --> 00:00:05,240
‫Merhaba ve hoş geldiniz.

2
00:00:05,240 --> 00:00:12,830
‫Bu derste, grab fonksiyonumuzu daha küçük ve okunabilir hale getirmek için kodumuzu yeniden düzenleyeceğiz.

3
00:00:12,830 --> 00:00:15,290
‫Ve yine parametrelerimizi kullanacağız.

4
00:00:15,290 --> 00:00:18,860
‫Bu sefer, aslında onu parametre olarak alan bir fonksiyon oluşturacağız.

5
00:00:18,860 --> 00:00:21,380
‫Şimdi bunu nasıl yapacağımızı görelim.

6
00:00:22,130 --> 00:00:29,090
‫Bu nedenle, işlevlerin tek bir ekrana sığdırılmaya çalışılması genellikle en iyi uygulamadır.

7
00:00:29,090 --> 00:00:34,070
‫Şimdi, benim durumumda, ekranım çok büyük, ancak hala öğreniyoruz, bu yüzden aslında işleri anlaşılır

8
00:00:34,070 --> 00:00:37,490
‫kılmak için daha küçük işlevlere sahip olmak mantıklı.

9
00:00:38,030 --> 00:00:46,070
‫Bence bu yakalama işlevi çok uzadı, bu yüzden onu oldukça işlevsel iki birime ayırabiliriz.

10
00:00:46,070 --> 00:00:52,250
‫İlki, taramayı yapan ve başlangıç ve bitiş vektörlerinin tüm hesaplamalarını yapan ve isabet sonucunu

11
00:00:52,250 --> 00:00:59,480
‫ve isabet edip etmediğimizi, isabet edip etmediğimizi söyleyen boolean çıktısını veren bit olacaktır.

12
00:00:59,480 --> 00:01:05,900
‫İkinci kısım ise if deyiminin içinde yer alır ve muhtemelen yakalama işi olarak bırakabiliriz çünkü

13
00:01:05,900 --> 00:01:08,930
‫bu aslında yakalama ile ilgilidir, değil mi?

14
00:01:08,930 --> 00:01:10,790
‫Sert gövdeyi uyandırmalıyız.

15
00:01:10,790 --> 00:01:16,430
‫grab adlı bir işlevde çağrılan bir yöntemde olması mantıklı olan bir bileşeni yakalamamız gerekiyor.

16
00:01:16,430 --> 00:01:20,210
‫Ama bu diğer şeyler biraz daha teğet geçiyor.

17
00:01:20,210 --> 00:01:23,720
‫Bu daha çok içeri çekmemiz gereken bir yardımcı program.

18
00:01:23,720 --> 00:01:28,580
‫Bu yüzden sizi bu faydayı yaratmaya, erişilebilir hale getirmeye davet ediyorum.

19
00:01:28,580 --> 00:01:29,870
‫Bence böyle adlandırılmalı.

20
00:01:29,870 --> 00:01:33,290
‫Sanırım bu, o kod yığınının ne yaptığını açıklıyor.

21
00:01:33,290 --> 00:01:37,220
‫Bu yüzden tüm bu süpürme kodunu yeni bir özel fonksiyona alın.

22
00:01:37,220 --> 00:01:41,600
‫Parametrelerinin ve dönüş değerlerinin ne olması gerektiği hakkında düşünün.

23
00:01:41,600 --> 00:01:43,670
‫Unutmayın, iki çıkışınız var.

24
00:01:43,670 --> 00:01:46,760
‫Yani vurduk ve sonuç aldık.

25
00:01:46,760 --> 00:01:51,890
‫Bu nedenle, bu işi yapmak için bir out parametresi kullanmayı düşünmeniz gerekir.

26
00:01:52,040 --> 00:01:57,710
‫Şimdi, eğer biraz ipucu istiyorsanız, size birazdan başlık dosyasına ne koyacağımı

27
00:01:57,710 --> 00:01:58,970
‫göstereceğim.

28
00:01:58,970 --> 00:02:01,520
‫Eğer bilmiyorsanız, hemen şimdi gidip bir videoyu duraklatabilirsiniz.

29
00:02:01,820 --> 00:02:04,340
‫Aksi takdirde, sana ipucu vereceğim.

30
00:02:04,730 --> 00:02:12,740
‫Bu yüzden grab H'ye gireceğiz ve get physics handle'a sahip olduğumuz yerin altında, bir şey

31
00:02:12,740 --> 00:02:18,860
‫alıp alamayacağımızı bize söyleyen bir Boolean dönüş türüne sahip olacağız,

32
00:02:18,910 --> 00:02:23,180
‫bir top alalım, grab a ball'a ulaşalım.

33
00:02:23,180 --> 00:02:27,650
‫Daha sonra ona out parametresi olacak bir parametre vermemiz gerekir.

34
00:02:27,650 --> 00:02:34,040
‫Bu yüzden F isabet sonucuna sabit olmayan bir referans olacaktır.

35
00:02:34,040 --> 00:02:35,630
‫Bir referans koy.

36
00:02:36,590 --> 00:02:41,450
‫Ampersand ve sonra buna alt vuruş sonucu diyeceğiz.

37
00:02:41,450 --> 00:02:49,340
‫Ve sonra bunun işlevimizde hiçbir şeyi değiştirmeyeceğini düşünüyorum, böylece bunu da maliyetli hale getirebiliriz.

38
00:02:49,340 --> 00:02:52,280
‫Bunu zaten düşünmüş olmanız küçük bir bonus puan.

39
00:02:52,490 --> 00:02:57,860
‫Şimdi devam edin, videoyu duraklatın ve C++ dosyasındaki bu işlevi doldurmayı deneyin.

40
00:03:01,090 --> 00:03:01,420
‫Tamam.

41
00:03:01,420 --> 00:03:02,190
‫Tekrar hoş geldiniz.

42
00:03:02,200 --> 00:03:03,010
‫O yüzden kopyalayacağım.

43
00:03:03,010 --> 00:03:04,960
‫C++'a git.

44
00:03:04,960 --> 00:03:10,840
‫Başlık dosyasındaki sıralamaya uyması için bunu Get Physics Handle bileşenimizin altına

45
00:03:10,840 --> 00:03:11,800
‫koyacağım.

46
00:03:11,980 --> 00:03:16,930
‫Ön tarafa U tutucu ekleyeceğim.

47
00:03:17,110 --> 00:03:18,520
‫Doğru şekilde girintileyeceğim.

48
00:03:18,520 --> 00:03:25,330
‫Noktalı virgül yerine parantez ekleyeceğim ve ardından elimizdeki kodu grab'e

49
00:03:25,330 --> 00:03:26,890
‫taşıyacağım.

50
00:03:26,890 --> 00:03:34,930
‫Benim için 53. satırdan başlayarak 65. satıra kadar, bunların hepsini keseceğim ve bir saniye içinde yerine bir

51
00:03:34,930 --> 00:03:36,220
‫şey koyacağız.

52
00:03:36,370 --> 00:03:44,710
‫Topu yakalamak için yapıştıracağım ve oluşturduğumuz bu isabetli sonucu elde edeceğiz.

53
00:03:44,710 --> 00:03:53,530
‫Yapabileceğimiz şey, bu isabet sonucunu burada elde ettiğimiz isabet sonucumuza eşit olarak ayarlamaktır.

54
00:03:53,620 --> 00:03:56,740
‫Bunu sadece vurduğumuzda yapmak isteyebiliriz.

55
00:03:56,740 --> 00:04:05,440
‫Bu nedenle, if deyimini bu şekilde koyabilir ve bu atamayı, if deyiminin içindeki isabet sonucuna dışarı isabetini sarabiliriz

56
00:04:05,530 --> 00:04:11,500
‫ve sonra devam edebilir ve fonksiyonun sonunda sadece isabet etti gibi döndürebiliriz,

57
00:04:11,500 --> 00:04:18,280
‫şimdi burada yapılabilecek bir optimizasyon veya iyileştirme var çünkü referansla süpürme

58
00:04:18,280 --> 00:04:23,260
‫kanalına ve ulaşılan topu tutmaya geçiyoruz.

59
00:04:23,260 --> 00:04:28,960
‫Aslında burada yeni bir isabet sonucu oluşturmamıza ve ardından bunu isabet sonucuna kopyalamamıza gerek yok.

60
00:04:28,960 --> 00:04:30,250
‫Bu sadece hafızayı boşa harcamak.

61
00:04:30,820 --> 00:04:36,490
‫Yapabileceğimiz şey, içeride oluşturduğumuz isabet sonucunu kaldırabilir, reach'te bir

62
00:04:36,490 --> 00:04:44,980
‫top yakalayabilir ve bunun yerine doğrudan sweep single by channel'a geçmek için içeri aktardığımız referansı kullanabiliriz.

63
00:04:44,980 --> 00:04:50,440
‫Yani aslında bu referansı, doldurulacağı kanala göre tekli süpürme işlevine aktarıyor

64
00:04:50,440 --> 00:04:55,840
‫ve bu da if deyimine olan ihtiyacı ortadan kaldırarak bu işlevi biraz daha hızlı ve okunması

65
00:04:55,840 --> 00:04:57,880
‫kolay hale getiriyor.

66
00:04:57,880 --> 00:05:01,510
‫Ve aslında, isabet oranını saklamak için bir değişkene bile ihtiyacımız olduğunu sanmıyorum.

67
00:05:01,510 --> 00:05:03,790
‫Devam edip geri dönebiliriz.

68
00:05:03,790 --> 00:05:09,730
‫Get world süpürme kanalı sonuçlarını döndürmek çok daha temiz olacak.

69
00:05:09,730 --> 00:05:16,090
‫Bu nedenle, buradan elde edilen sonuçları get grab able in reach'e ya da her kim çağırıyorsa ona

70
00:05:16,090 --> 00:05:17,050
‫iletiyoruz.

71
00:05:17,050 --> 00:05:21,970
‫Kimin aradığından bahsetmişken, şimdi kepçemize çıkmamız gerekiyor.

72
00:05:21,970 --> 00:05:24,670
‫Hit sonuçlarımızı bir yerde oluşturmamız gerekiyor.

73
00:05:24,670 --> 00:05:25,690
‫Onu burada yaratmalıyız.

74
00:05:25,690 --> 00:05:28,150
‫Bu yüzden sonucu vurun, bu dolduracağımız sonuçtur.

75
00:05:28,330 --> 00:05:35,320
‫Daha sonra bir boolean değişkeni oluşturacağız ve bu değişkeni ulaşılabilecek şekilde yakalamak

76
00:05:35,350 --> 00:05:38,320
‫için eşit olarak ayarlayacağız.

77
00:05:38,320 --> 00:05:43,240
‫Ve doldurulmasını istediğimiz isabet sonucunu referans olarak ileteceğiz.

78
00:05:43,240 --> 00:05:49,270
‫Ve sonra isabet edersek, devam edeceğiz ve yakalama kodunu çalıştıracağız.

79
00:05:49,270 --> 00:05:50,320
‫Harika bir şey.

80
00:05:50,320 --> 00:05:56,590
‫Bu yakalama işlevini tek bir ekrana sığdırmak için bir şeyi bir işlevin içine taşıdık.

81
00:05:56,590 --> 00:06:04,120
‫Ve yine parametreleri kullandık, bu kez kendimiz için onları ciddi bir şekilde kullanan bir fonksiyon

82
00:06:04,120 --> 00:06:05,200
‫yarattık.

83
00:06:05,200 --> 00:06:07,270
‫Bir sonraki videoda görüşürüz.

