﻿1
00:00:04,350 --> 00:00:05,340
‫Merhaba ve hoş geldiniz.

2
00:00:05,340 --> 00:00:11,490
‫Bu derste, ilk geometri izimizi kuracağız, böylece gidip çirkin yaratığımıza baktığımızda

3
00:00:11,490 --> 00:00:17,970
‫ve menzil içinde yeterince yaklaştığımızda, iz tarafından vurulan aktörün adını yazdıracak

4
00:00:17,970 --> 00:00:21,030
‫kadar emin olacağız.

5
00:00:21,030 --> 00:00:27,540
‫Şimdi bunu nasıl yapabileceğimizi görelim ve sonunda bu taramayı tek tek kanal bazında yapmaya hazır hale gelelim.

6
00:00:27,540 --> 00:00:31,290
‫İşe yaraması için pek çok parçayı bir araya getirmemiz gerekiyordu.

7
00:00:31,290 --> 00:00:32,550
‫Ama sonunda buradayız.

8
00:00:32,700 --> 00:00:36,240
‫Şimdi bu fonksiyonun sözdizimine bir göz atalım.

9
00:00:36,240 --> 00:00:43,230
‫Dolayısıyla, bu tipler söz konusu olduğunda burada neler olup bittiğini anlamak için çok daha iyi bir yerdeyiz.

10
00:00:43,230 --> 00:00:50,790
‫Yani dönüş değeri bir boolean'dır ve temel olarak bize tarama ile herhangi bir şey bulup bulmadığımızı

11
00:00:50,790 --> 00:00:51,510
‫söyler.

12
00:00:51,990 --> 00:00:56,430
‫Şimdi ikinci argüman, burada görebileceğiniz gibi, bir referanstır.

13
00:00:56,430 --> 00:00:58,050
‫Bu ampersand var.

14
00:00:58,170 --> 00:01:02,520
‫Değişken adından sonra bir boşluk ya da değişken adı arasında bir boşluk olması fark etmez,

15
00:01:02,520 --> 00:01:07,830
‫türden sonra bu türün bir referans olduğunu ve F hit sonucu olarak adlandırılan bir tür olduğunu belirten

16
00:01:07,950 --> 00:01:12,690
‫bir boşluk olduğu sürece hepsi aynıdır, bunun bir struct olduğunu görebilirsiniz.

17
00:01:12,810 --> 00:01:15,870
‫Yani bu F vuruşu sonucu dışarı vuruşudur.

18
00:01:15,870 --> 00:01:18,630
‫Taramadan çıkan sonuç budur.

19
00:01:18,630 --> 00:01:24,120
‫Hangi şeylerin vurulduğunu görebiliyoruz ve bu bir yapı çünkü bu taramadan çıkabilecek birden

20
00:01:24,120 --> 00:01:26,790
‫fazla farklı şey, bilgi parçası var.

21
00:01:26,790 --> 00:01:31,080
‫O zaman sabit bir f vektör referansımız var.

22
00:01:31,080 --> 00:01:36,510
‫Yani bu, başlangıç vektörümüzü kopyalamak yerine referans olarak alıyor.

23
00:01:36,510 --> 00:01:40,530
‫Son vektörle aynı, o zaman bir rotasyonumuz var.

24
00:01:40,530 --> 00:01:47,610
‫Yani bu, f döndürücü kullanmaya alternatif bir yapı olan bir f quat kullanarak şeklin döndürülmesidir.

25
00:01:47,610 --> 00:01:51,690
‫Bir küre kullandığımız için burada temel olarak nasıl sıfır rotasyona girebileceğimizi göreceğiz.

26
00:01:51,690 --> 00:01:52,770
‫Gerçekten önemli değil.

27
00:01:53,220 --> 00:01:59,940
‫Sırada İzleme Kanalı var ve İzleme kanalımızın C++'da ne olarak adlandırıldığını nasıl

28
00:01:59,940 --> 00:02:02,220
‫bulacağımızı göreceğiz.

29
00:02:02,370 --> 00:02:08,820
‫Ve sonra çarpışma şeklimiz var, bu da sağlamamız gereken son argüman olacak ve bunu yaparak belirli

30
00:02:08,820 --> 00:02:13,830
‫bir yarıçapta bir küreyi nasıl oluşturabileceğimizi göreceğiz.

31
00:02:13,830 --> 00:02:18,540
‫Ancak başlamadan önce, bu yarıçapın ne olduğunu ve nasıl yapılandırıldığını bilmemiz gerekir.

32
00:02:18,540 --> 00:02:23,700
‫Bu yüzden grab a dot h'ye gideceğiz, referans referansları ve dış parametreler için

33
00:02:23,700 --> 00:02:27,870
‫örnek olarak kullandığımız bu fonksiyonları kaldıracağız.

34
00:02:27,870 --> 00:02:35,040
‫Herhangi bir yerde düzenleyebileceğimiz yeni bir özellik oluşturacağız ve bu özellik

35
00:02:35,310 --> 00:02:42,690
‫yakalama yarıçapı adında bir değişken olacak ve bunu 101 metre olarak ayarlayacağız.

36
00:02:42,690 --> 00:02:49,140
‫Şimdi C++'a geçelim ve print damage ve has damage referanslarını kaldıralım ve bunların

37
00:02:49,140 --> 00:02:53,490
‫herhangi birini tick bileşeninden de kaldırabiliriz.

38
00:02:53,490 --> 00:02:58,830
‫Tüm if deyimi ve hasarı geçirdiğimiz yer çünkü burada hata ayıklama hattımızı çiziyoruz

39
00:02:58,830 --> 00:03:03,900
‫ve şimdi kanala göre tekli süpürme işlemimize bir çağrı yapmak istiyoruz.

40
00:03:03,990 --> 00:03:06,150
‫Bu yüzden süpürme yazacağız.

41
00:03:06,150 --> 00:03:14,070
‫Bu yüzden get world parantezini yazacağız çünkü bunun yeni dünya nesnesi üzerinde bir fonksiyon olduğunu biliyoruz.

42
00:03:14,370 --> 00:03:19,500
‫Sonra bir ok yapabiliriz çünkü get world'ün bir işaretçi döndürdüğünü

43
00:03:19,500 --> 00:03:29,040
‫biliyoruz ve sonra bu şekilde kanala göre tek bir tarama yapacağız ve burada ilk argüman olarak doldurması için bir out parametresi

44
00:03:29,040 --> 00:03:31,710
‫girmemiz gerekecek.

45
00:03:31,800 --> 00:03:38,100
‫Bu yüzden boş olacak, doldurulacak ve doğru türe sahip olması gereken bir değişken oluşturacağız.

46
00:03:38,100 --> 00:03:44,640
‫Yani bir if f hit result olacak ve değişkenin kendisini hit result olarak adlandıracağız, sonuna noktalı virgül

47
00:03:44,640 --> 00:03:49,500
‫koyacağız çünkü onu başlatmıyoruz, ona herhangi bir değer vermiyoruz, ancak sweep

48
00:03:49,500 --> 00:03:55,050
‫single by channel fonksiyonu tarafından bir değer verilmesi için onu içeri aktaracağız.

49
00:03:55,770 --> 00:03:57,270
‫İşte bu bizim isabet sonucumuz.

50
00:03:57,270 --> 00:04:04,050
‫Ardından, kopyalanmayacağını ancak referans alınacağını bildiğimiz başlangıç ve bitiş vektörlerini aktarmamız

51
00:04:04,050 --> 00:04:05,190
‫gerekir.

52
00:04:05,430 --> 00:04:13,080
‫Şimdi rotasyonu doldurmamız gerekiyor, bunu da basit bir f quote colon, colon identity ile yapabiliriz,

53
00:04:13,080 --> 00:04:17,370
‫bu da bize temelde bunun bir rotasyon olmadığını söyler.

54
00:04:17,370 --> 00:04:19,290
‫Bu sadece biraz garip bir dil.

55
00:04:19,290 --> 00:04:23,190
‫Bu matematiksel bir ifadedir ve bunun bir rotasyon olmadığı anlamına gelir.

56
00:04:23,760 --> 00:04:27,030
‫Sırada, iz çarpışma kanalına ihtiyacımız var.

57
00:04:27,030 --> 00:04:31,020
‫Şimdi, bu iz çarpışma kanalını nasıl bulacağız?

58
00:04:31,170 --> 00:04:38,370
‫Projemizi içeren klasöre gidip yapılandırmaya girersek ve ardından varsayılan motor

59
00:04:38,370 --> 00:04:44,160
‫INI'sine gidersek, buna tıklayın ve Visual Studio koduyla açın.

60
00:04:44,160 --> 00:04:47,700
‫Ve burada Grabber'ı aramak istiyorum.

61
00:04:48,030 --> 00:04:52,770
‫Böylece yakalayıcı için çarpışma yanıt kanalını görebileceksiniz.

62
00:04:52,770 --> 00:04:56,040
‫Ve temel olarak burada varsayılan motor INI'sinde ayarlanmıştır.

63
00:04:56,040 --> 00:05:00,990
‫Tüm dosyada sadece bir kez geçiyor ve kanal adını görebiliyorsunuz.

64
00:05:00,990 --> 00:05:02,820
‫Bu, C++ dilindeki kanal adıdır.

65
00:05:02,820 --> 00:05:03,750
‫Pek değil.

66
00:05:04,050 --> 00:05:06,060
‫Evet, ama öyle. e. c.

67
00:05:06,090 --> 00:05:13,890
‫Oyun İzleme Kanalı iki, bu yüzden devam edip bunu kopyalayabilir ve ardından bir CP yakalamaya geri dönebilir ve istediğimiz

68
00:05:13,890 --> 00:05:17,980
‫izleme kanalı olarak buraya yapıştırabiliriz.

69
00:05:18,000 --> 00:05:22,590
‫Şimdi, bu satır oldukça uzuyor ve bunu telafi etmek için yapabileceğimiz şey, aslında bu parametrelerin

70
00:05:22,590 --> 00:05:27,030
‫her birini ayrı satırlara koyabilir veya en azından onları yayabiliriz.

71
00:05:27,030 --> 00:05:29,220
‫Yani belki de başlangıç ve bitiş aynıdır.

72
00:05:29,220 --> 00:05:35,250
‫Kimlik kriteri bir satırda, izleme kanalı başka bir satırda bu şekilde yer alır.

73
00:05:35,250 --> 00:05:39,640
‫Bu da bize bu uzun tartışma listelerini okumak için biraz daha fazla alan sağlıyor.

74
00:05:39,660 --> 00:05:44,130
‫Şimdi, belgelere geri dönersek, burada geçirmemiz gereken bir sonraki

75
00:05:44,130 --> 00:05:47,250
‫şeyin bir F çarpışma şekli olduğunu görebiliriz.

76
00:05:47,250 --> 00:05:49,890
‫Bu yüzden bir şekil oluşturmamız gerekiyor.

77
00:05:49,890 --> 00:05:52,980
‫Belki bunu en üstte ayrı bir değişken olarak yaparız.

78
00:05:52,980 --> 00:05:57,510
‫F vuruş sonucunun aslında bir çıkış parametresi olduğunu açıkça belirtmek için bunu F vuruş sonucundan önce

79
00:05:57,510 --> 00:05:58,140
‫yapacağım.

80
00:05:58,140 --> 00:06:02,490
‫Bunu her zaman fonksiyon çağrısından önceki son şey olarak bırakacağım.

81
00:06:02,850 --> 00:06:08,970
‫Bu yüzden küre adını vereceğimiz bir F çarpışma şekli oluşturacağız ve bunu F çarpışma

82
00:06:08,970 --> 00:06:15,210
‫şekli, iki nokta üst üste, iki nokta üst üste, küre yap'a eşit olarak ayarlayacağız.

83
00:06:15,210 --> 00:06:18,540
‫Bu da bize yeni bir küre, çarpışma şekli oluşturacak.

84
00:06:18,540 --> 00:06:26,580
‫Ve bu fonksiyonun argümanı, bir U özelliği olarak yapılandırdığımız grab radius değişkeni olarak sahip olduğumuz

85
00:06:26,580 --> 00:06:33,060
‫küre yarıçapıdır, ancak bu satırın sonuna bir noktalı virgül koyarız ve küreyi süpürme kanalı

86
00:06:33,060 --> 00:06:41,130
‫fonksiyonuna son argümanımız olarak aktarabilir ve bu satırın sonuna bir noktalı virgül koyabiliriz.

87
00:06:41,130 --> 00:06:47,790
‫Şimdi bir şey daha var, bildiğimiz bu fonksiyon bir boolean döndürüyor, bu da herhangi bir şeyi vurup vurmadığımızı gösteriyor.

88
00:06:47,790 --> 00:06:55,050
‫Bu yüzden sonucu has hit adında bir boolean değişkene koyacağım ve bu fonksiyonda daha sonra

89
00:06:55,050 --> 00:06:57,480
‫kullanacağımız şey bu olacak.

90
00:06:57,480 --> 00:07:02,280
‫Bu yüzden size hit aktörün adını yazmanız için meydan okumak istiyorum.

91
00:07:02,280 --> 00:07:04,440
‫Şimdi de bu süpürme olayı var.

92
00:07:04,440 --> 00:07:07,230
‫Bundan bazı sonuçlar alabilmeliyiz.

93
00:07:07,230 --> 00:07:11,700
‫Bu nedenle, herhangi bir şeyimiz olup olmadığını yazdırmak için bir if deyimi kullanın.

94
00:07:11,700 --> 00:07:16,830
‫Eğer bu boolean doğruysa, o zaman aktör adını yazdıracağız.

95
00:07:16,830 --> 00:07:22,950
‫Küre İzi'nin vurulduğu aktörü, vuruş sonucu yapısını kullanarak elde edeceksiniz.

96
00:07:22,950 --> 00:07:28,530
‫Üzerinde nokta işleci ile erişebileceğiniz bir yöntem vardır çünkü bu bir struct'tır.

97
00:07:28,530 --> 00:07:30,300
‫Yapıya bir işaretçi değildir.

98
00:07:30,600 --> 00:07:36,630
‫Bir nokta, get actor yapabilir ve parantezleri kullanabilirsiniz ve bu size bir aktör işaretçisi döndürür.

99
00:07:37,140 --> 00:07:42,240
‫Daha sonra bu aktif işaretçiyi kullanarak, get actor name veya label yöntemini kullanarak aktörün

100
00:07:42,240 --> 00:07:49,020
‫adını alabilir ve bunun için nokta mı yoksa ok operatörünü mü kullanmak istediğinizi düşünebilir ve ardından bu aktör adını yazdırarak

101
00:07:49,020 --> 00:07:53,700
‫derleyip test edebilir ve sahnede neye ulaşabileceğinizi görebilirsiniz.

102
00:07:53,700 --> 00:07:55,500
‫Videoyu duraklatın ve deneyin.

103
00:07:58,460 --> 00:07:58,750
‫Tamam.

104
00:07:58,750 --> 00:07:59,710
‫Tekrar hoş geldiniz.

105
00:07:59,740 --> 00:08:02,410
‫Bu yüzden if deyimini oluşturmakla başlayacağız.

106
00:08:02,410 --> 00:08:09,100
‫Eğer isabet ettiyse, o zaman bazı parantezler koyacağız ve her şeyden önce, bu aktör noktasını ele geçirmek

107
00:08:09,100 --> 00:08:10,270
‫istiyoruz.

108
00:08:10,270 --> 00:08:17,710
‫Yani bir aktör yıldız hit aktör hit sonuca eşittir.

109
00:08:18,670 --> 00:08:20,260
‫Nokta al.

110
00:08:20,560 --> 00:08:21,420
‫Aktör.

111
00:08:21,910 --> 00:08:22,690
‫Parantezler.

112
00:08:22,690 --> 00:08:22,900
‫Sevdim.

113
00:08:22,900 --> 00:08:34,030
‫Sonra bir u günlüğü yapacağız ve hit actor colon percent sx yazacağız ve hit actor yapabiliriz ve burada bir işaretçi olduğu

114
00:08:34,060 --> 00:08:44,860
‫için, hit actor arrow yapabiliriz, aktör adını veya etiketini alabiliriz, sonra bazı parantezler yapabiliriz.

115
00:08:44,860 --> 00:08:51,790
‫Ve bu bir dize olduğu için, Yui günlüğümüzde düzgün bir şekilde görüntülenebilmesi için tüm shebang'in

116
00:08:52,240 --> 00:08:55,210
‫önüne bir yıldız koymamız gerekiyor.

117
00:08:55,240 --> 00:08:58,660
‫Tamam, şimdi devam etmemiz ve bunu derlememiz gerekiyor.

118
00:08:58,660 --> 00:09:04,150
‫Sahneye girdikten sonra, çıktı günlüğünü açalım ve oynatırken görebilmek için düzene yerleştirelim

119
00:09:04,150 --> 00:09:06,640
‫ve oynat düğmesine basalım.

120
00:09:07,390 --> 00:09:11,050
‫Ve anında o gargoyle heykeline çarptığımızı görebilirsiniz.

121
00:09:11,080 --> 00:09:16,360
‫Eğer arkamı dönüp başka bir şeye bakarsam, hiçbir şeye çarpıp çarpmadığım ya da hiçbir

122
00:09:16,360 --> 00:09:19,150
‫şey gösterip göstermediği çok net değil.

123
00:09:19,150 --> 00:09:24,970
‫Şimdi yapacağım şey, buradaki if ifademize bir else eklemek, biraz daha parantez koymak

124
00:09:24,970 --> 00:09:27,640
‫ve başka bir U günlüğü yapmak olacak.

125
00:09:27,640 --> 00:09:34,450
‫Ve bu sefer metin diyecek ki, aktör vuruşu yok, yeniden derleyelim ve gidip editörde oynayalım.

126
00:09:34,450 --> 00:09:35,230
‫Ve şimdi görebilirsiniz.

127
00:09:35,230 --> 00:09:41,230
‫Ben gidip gargoyle'a bakmaya başlayana kadar her zaman aktör vuruşu yok diyor.

128
00:09:41,230 --> 00:09:43,900
‫Şimdi de gargoyle'un vurulan şey olduğunu söylüyor.

129
00:09:43,900 --> 00:09:50,740
‫Eğer menzilim için oradan çok uzaklaşırsam, tekrar vurulan aktör yok dediğini görebilirsiniz.

130
00:09:50,770 --> 00:09:51,280
‫Harika bir şey.

131
00:09:51,280 --> 00:09:58,090
‫Şimdi küresel bir nesneyle bir geometri taraması yaptık ve gerçekten de yalnızca belirli Trace kanalımızdaki

132
00:09:58,270 --> 00:10:03,640
‫aktörlere tepki verdiğini görebiliyoruz, örneğin Gargoyle şu anda ayarladığımız tek

133
00:10:03,640 --> 00:10:04,420
‫aktör.

134
00:10:04,420 --> 00:10:06,880
‫Yani bulduğu tek şey bu.

135
00:10:06,880 --> 00:10:08,770
‫Bir sonraki derste görüşürüz.

