﻿1
00:00:04,170 --> 00:00:04,650
‫Hey.

2
00:00:04,650 --> 00:00:05,580
‫Tekrar hoş geldiniz.

3
00:00:05,610 --> 00:00:09,390
‫Artık imlecin altındaki isabet sonucunu almamız gerektiğini biliyoruz.

4
00:00:09,420 --> 00:00:14,070
‫Bu videoda bunun nasıl işlediği ve ne anlama geldiği hakkında biraz daha konuşacağız.

5
00:00:14,250 --> 00:00:20,520
‫Amacımız, isabet sonuçlarını imlecin altına almak ve bu konumu göstermektir ve bunu bir hata ayıklama küresi

6
00:00:20,520 --> 00:00:22,090
‫çizerek yapabiliriz.

7
00:00:22,110 --> 00:00:24,150
‫Bunu nasıl yapacağımızı da öğreneceğiz.

8
00:00:24,180 --> 00:00:27,300
‫Şimdi isabet sonucu denen bir şeyden bahsedelim.

9
00:00:27,600 --> 00:00:30,550
‫Oyunlarda genellikle böyle bir şey yapmak isteyeceksiniz.

10
00:00:30,570 --> 00:00:32,520
‫Uzayda bir noktamız olacak.

11
00:00:32,550 --> 00:00:39,210
‫Bu noktaya başlangıç diyeceğiz ve F vektör tipine sahip olacak ve bir bitiş konumumuz olacak.

12
00:00:39,240 --> 00:00:43,260
‫Bu aynı zamanda F vektör tipi uzayda bir nokta olacaktır.

13
00:00:43,410 --> 00:00:48,720
‫Şimdi başlangıç noktasından bitiş noktasına görünmez bir çizgi çizmek istediğimizi varsayalım.

14
00:00:48,750 --> 00:00:54,450
‫Ve bu çizgiyi çizdiğimiz anda, başlangıç ve bitiş konumları arasında herhangi bir nesne olup olmadığını

15
00:00:54,450 --> 00:00:55,800
‫görmek istiyoruz.

16
00:00:56,280 --> 00:01:01,470
‫Şimdi, eğer varsa, uzayda çizdiğimiz bu çizgi o nesneye çarpacaktır.

17
00:01:01,470 --> 00:01:05,400
‫Yüzeyde, bu gerçekleştiğinde, buna bir vuruş olayı diyoruz.

18
00:01:05,430 --> 00:01:10,820
‫Şimdi, bu şekilde görünmez bir çizgi çizdiğimizde, buna çizgi izleme yapmak denir.

19
00:01:10,830 --> 00:01:14,520
‫Ve bir şeyi vurduğumuzda, bir iz vuruşumuz olduğunu söyleriz.

20
00:01:14,550 --> 00:01:21,240
‫Şimdi, eğer bir şeye çarpar ve bir isabet olayı alırsak, isabet izi isabet sonucu adı verilen bir

21
00:01:21,240 --> 00:01:22,820
‫yapıda bilgi depolar.

22
00:01:22,830 --> 00:01:24,700
‫Türü F isabet sonucudur.

23
00:01:24,720 --> 00:01:31,560
‫Şimdi F vuruş sonuçları yapısı, diğer bilgilerin yanı sıra uzayda bir f vektörü olarak vuruş konumu

24
00:01:31,560 --> 00:01:38,680
‫ve vurduğumuz aktör dahil olmak üzere vuruş olayı hakkında bilgi depolayan değişkenler içerir.

25
00:01:38,700 --> 00:01:44,100
‫Şimdi, bir çizgi izleme gerçekleştirdiğimizde, bunu bir çarpışma kanalı belirleyerek yaparız.

26
00:01:44,130 --> 00:01:48,390
‫Genellikle çizgi izlerinde görünürlük adı verilen kanalı seçeriz.

27
00:01:48,510 --> 00:01:56,070
‫E Çarpışma Kanalı adında bir enum vardır ve bu enum içinde XY görünürlüğü adında bir enum sabiti

28
00:01:56,070 --> 00:01:57,030
‫vardır.

29
00:01:57,180 --> 00:02:01,470
‫Bu, bir çizgi izleme gerçekleştirirken belirttiğimiz parametrelerden biridir.

30
00:02:01,740 --> 00:02:07,380
‫Şimdi, görünürlük kanalını belirtirsek, bu, çarpışma ayarlarında görünürlük kanalını engelleyecek şekilde ayarlanmış

31
00:02:07,380 --> 00:02:10,980
‫nesnelerin isabet olaylarını kaydedeceği anlamına gelir.

32
00:02:11,130 --> 00:02:16,350
‫Görünürlük kanalını engelleyecek şekilde ayarlanmamış hiçbir nesne isabet olayı oluşturmaz.

33
00:02:16,380 --> 00:02:19,350
‫Şimdi imlecin altındaki izleme sonucunu istiyoruz.

34
00:02:19,590 --> 00:02:23,040
‫Ekranın burada olduğunu ve imlecimizin de burada olduğunu düşünün.

35
00:02:23,040 --> 00:02:28,620
‫İmlecimizin ucunda, imlecin altındaki isabet sonucunu almak için fonksiyonu kullandığımızda ekranda

36
00:02:28,620 --> 00:02:29,730
‫bir nokta var.

37
00:02:29,760 --> 00:02:35,040
‫Olan şey, kameramızın dünyadaki bazı nesneleri, örneğin buradaki zemini görmesidir.

38
00:02:35,040 --> 00:02:40,950
‫Ve ekranda imleç konumumuza karşılık gelen noktada kameradan bir çizgi izi gerçekleştiriyoruz

39
00:02:40,950 --> 00:02:45,090
‫ve çizgi izini doğrudan dünyaya çekiyoruz.

40
00:02:45,090 --> 00:02:51,570
‫Ve eğer bir şeye çarparsak, bir isabet olayı oluşturacağız ve bilgileri bir isabet sonucu yapısında saklayacağız.

41
00:02:52,080 --> 00:02:54,470
‫Şimdi bunu nasıl yapabileceğimizi öğrenelim.

42
00:02:54,480 --> 00:03:01,560
‫Burada tank CP'deyim ve yapmak istediğim şey her karede imlecin altında isabet sonucunu almak, bu da tick fonksiyonuna ihtiyacımız

43
00:03:01,560 --> 00:03:03,240
‫olduğu anlamına geliyor.

44
00:03:03,240 --> 00:03:08,160
‫Bu yüzden tekrar tabana geri dönüyoruz ve burada tik fonksiyonumuzu buluyoruz.

45
00:03:08,190 --> 00:03:14,100
‫Şimdi bunu temel piyonda herhangi bir şey için kullanmıyoruz, bu yüzden bu işlevi tıpkı Begin Play'de yaptığımız gibi tank

46
00:03:14,100 --> 00:03:15,570
‫sınıfına taşıyabiliriz.

47
00:03:15,570 --> 00:03:21,600
‫Bu yüzden fonksiyon bildirimini yorumuyla birlikte vurgulayacağım ve kopyalayacağım.

48
00:03:21,600 --> 00:03:28,590
‫Ve bundan sonra tüm bu bölümü, public ve hepsini sileceğim ve sonra Tank H'ye geri döneceğim ve burada

49
00:03:28,590 --> 00:03:33,150
‫public bölümüne tick fonksiyon bildirimini yapıştıracağım.

50
00:03:33,150 --> 00:03:37,620
‫Şimdi bunu temel piyonda kullanmıyoruz, bu yüzden tik fonksiyonunu temel piyondan kaldıracağım.

51
00:03:37,680 --> 00:03:40,710
‫CP Şimdi temel piyondan gitti.

52
00:03:41,340 --> 00:03:47,880
‫Şimdi burada niyet beyan ettik, ancak işlevi tank içinde de tanımlamamız gerekiyor.

53
00:03:48,060 --> 00:03:54,180
‫CP Bunu burada tank DHCP'de, oyuncu giriş bileşeni kurulumunun hemen altında yapacağım.

54
00:03:54,180 --> 00:03:56,400
‫Bu yüzden geçersiz tik diyeceğiz.

55
00:03:57,340 --> 00:03:59,620
‫Delta Zamanı adı verilen bir değişken alır.

56
00:04:00,940 --> 00:04:02,350
‫Ve işte bedenimiz.

57
00:04:02,380 --> 00:04:09,180
‫Şimdi yine, kapsam çözümleme operatörüyle birlikte tick fonksiyonundan hemen önce bir tanka ihtiyacımız var.

58
00:04:09,190 --> 00:04:14,530
‫Ayrıca super tick'i çağırmamız ve Delta zamanında geçmemiz gerekiyor.

59
00:04:16,450 --> 00:04:19,240
‫Yani şimdi tank sınıfında kene var.

60
00:04:19,450 --> 00:04:23,560
‫Yapmak istediğimiz şey, imlecin altındaki isabet sonuçlarını almaktır.

61
00:04:23,710 --> 00:04:25,450
‫Şöyle yapacağız.

62
00:04:25,480 --> 00:04:31,260
‫Kullanacağımız fonksiyon, oyuncu kontrolöründe imleç altında get hit result adında mevcuttur.

63
00:04:31,270 --> 00:04:32,800
‫Bunun hakkında konuşuyorduk.

64
00:04:32,980 --> 00:04:34,530
‫İşte söz dizimi.

65
00:04:34,540 --> 00:04:36,160
‫Bir izleme kanalı alır.

66
00:04:36,190 --> 00:04:40,660
‫Bir izleme kanalı belirlememiz gerektiğini ve görünürlük kullanacağımızı unutmayın.

67
00:04:40,840 --> 00:04:43,690
‫Şimdi iki ek giriş parametremiz var.

68
00:04:43,720 --> 00:04:46,720
‫Birincisi B iz kompleksi adı verilen bir bool.

69
00:04:46,750 --> 00:04:49,120
‫Bunun ne anlama geldiğini birazdan konuşacağız.

70
00:04:49,210 --> 00:04:52,270
‫Üçüncü giriş parametresi ise bir F isabet sonucudur.

71
00:04:52,390 --> 00:04:57,820
‫Şimdi sadece dokümantasyonda bu türü görmek için F hit sonucuna tıklayacağım.

72
00:04:58,480 --> 00:05:01,960
‫Eğer aşağı kaydırırsam, bazı değişkenleri göreceğiz.

73
00:05:01,990 --> 00:05:06,670
‫Bunlardan birinin adı aktör ve açıklamasında Aktörün İz Tarafından Vurulduğu yazıyor.

74
00:05:06,700 --> 00:05:13,510
‫Ayrıca, bu vuruşun bir bloklama çarpışmasının sonucu olup olmadığını belirten bu B bloklama vuruşuna sahibiz.

75
00:05:13,750 --> 00:05:17,770
‫Şimdi, diğer değişkenler arasında darbe noktası gibi şeyler var.

76
00:05:18,010 --> 00:05:22,000
‫Bu, uzayda gerçekten bir şeye çarptığımız yerdir.

77
00:05:22,600 --> 00:05:26,150
‫Öyleyse neden devam edip bu işlevi çağırmayı denemiyoruz?

78
00:05:26,170 --> 00:05:32,170
‫Öncelikle oyuncumuzu, kontrolörümüzü istiyoruz ve burada yaptığımız şey sayesinde oyuna başlıyoruz, oyuncumuz, kontrolörümüz,

79
00:05:32,170 --> 00:05:33,370
‫hakemimiz var.

80
00:05:33,400 --> 00:05:38,770
‫Şimdi yapmamız gereken ilk şey, oyuncu denetleyicisi ref'inin geçerli olup olmadığını kontrol etmektir.

81
00:05:39,100 --> 00:05:42,140
‫Bir if deyimine her zaman bir işaretçi aktarabiliriz.

82
00:05:42,160 --> 00:05:47,270
‫İşaretçinin kendisi bir null işaretçi değilse true değerini döndürür.

83
00:05:47,290 --> 00:05:52,930
‫Eğer null pointer ise, if deyiminde false döndürür ve if deyiminin içine asla

84
00:05:52,930 --> 00:05:53,920
‫ulaşamayız.

85
00:05:54,070 --> 00:05:59,740
‫İşaretçilerimizi kullanmadan önce kontrol etmek ve null olmadıklarından emin olmak her zaman iyi bir fikirdir.

86
00:06:00,010 --> 00:06:04,960
‫Şimdi oyuncumuzu, kontrolör ref'ini alacağız ve fonksiyonu çağırmak için ok operatörünü

87
00:06:04,960 --> 00:06:08,950
‫kullanacağız, imleç altında isabet sonucunu alacağız.

88
00:06:09,100 --> 00:06:12,670
‫Şimdi açılan pencerede üç giriş parametremiz olduğunu görebiliriz.

89
00:06:12,850 --> 00:06:14,650
‫Bunlardan ilki İzleme Kanalıdır.

90
00:06:14,950 --> 00:06:22,030
‫EA Çarpışma Kanalını kullanacağız ve iki iki nokta üst üste yazarsak, EA Çarpışma Kanalı enumundaki tüm

91
00:06:22,030 --> 00:06:26,350
‫farklı enum sabitlerini gösteren bir açılır menü elde ederiz.

92
00:06:26,530 --> 00:06:35,230
‫Görünürlüğü kullanmak istiyoruz, bu yüzden görünürlük kanalını kullandığımızı belirtmek için XY görünürlük yazacağız.

93
00:06:35,440 --> 00:06:41,470
‫Şimdi bir sonraki parametre B Trace Complex olarak adlandırılıyor ve buna false değerini aktaracağız.

94
00:06:41,500 --> 00:06:44,590
‫Şimdi bunun ne anlama geldiğini birkaç dakika içinde tartışacağız.

95
00:06:44,590 --> 00:06:46,900
‫Ama şimdilik false kullanacağız.

96
00:06:47,110 --> 00:06:50,300
‫Şimdi üçüncü parametre için bir isabet sonucuna ihtiyacımız var.

97
00:06:50,320 --> 00:06:53,140
‫Bu, F isabet sonucu türünde bir yapıdır.

98
00:06:53,170 --> 00:06:59,500
‫Şimdi, bunun üzerine gelirseniz, F isabet sonucunun, ve işaretine benzeyen referans operatörü tarafından gösterildiği

99
00:06:59,500 --> 00:07:02,740
‫gibi bir referans olarak aktarıldığını göreceksiniz.

100
00:07:02,890 --> 00:07:08,320
‫Şimdi, genellikle bir şeyi referans olarak ilettiğinizde, bu bir maliyet referansıdır, yani fonksiyon

101
00:07:08,320 --> 00:07:09,730
‫onu değiştiremez.

102
00:07:09,730 --> 00:07:13,870
‫Ancak burada bir F isabet sonucunu sabit olmayan bir referans olarak aktarıyoruz.

103
00:07:14,110 --> 00:07:20,120
‫Bu genellikle fonksiyonun bu giriş parametresini doğrudan değiştirmek için tasarlandığına dair bir ipucudur.

104
00:07:20,140 --> 00:07:27,730
‫İmleç altındaki isabet sonucunu al öğesinin yapacağı şey, isabet sonucundaki bu değişkenleri isabet sonucu hakkındaki bilgilerle

105
00:07:27,730 --> 00:07:29,260
‫doldurmaktır.

106
00:07:29,290 --> 00:07:32,710
‫Bu, bu f hit sonuçlarından birini içeri aktarmamız gerektiği anlamına gelir.

107
00:07:32,740 --> 00:07:37,540
‫Burada, if kontrolünde F hit result türünde bir yerel değişken oluşturacağız.

108
00:07:38,380 --> 00:07:44,650
‫Ve bu isabet sonucunu çağırabiliriz ve bu N'yi üçüncü giriş parametresi olarak geçebiliriz.

109
00:07:44,830 --> 00:07:51,180
‫Şimdi, bu fonksiyonu çağırdıktan sonra, bu isabet sonucu bu hat iziyle ilgili verilerle doldurulacaktır.

110
00:07:51,190 --> 00:08:00,040
‫Örneğin, vurulan aktörü almak için vuruş sonucu nokta aktörüne veya vuruş olayını yaşadığımız uzaydaki noktayı almak

111
00:08:00,040 --> 00:08:03,430
‫için nokta çarpma noktasına erişebiliriz.

112
00:08:03,580 --> 00:08:08,470
‫Yani isabet sonucu, hat izi hakkında bilgi almak için kullanacağımız şeydir.

113
00:08:08,860 --> 00:08:13,450
‫Şimdi genellikle bir çizgi izlemenin sonucunu görebilmek güzeldir.

114
00:08:13,450 --> 00:08:18,010
‫Bir hata ayıklama küresi çizerek bir çizgi izlemenin sonucunu kolayca görselleştirebiliriz.

115
00:08:18,340 --> 00:08:24,580
‫Hata ayıklama küreleri, uzayda çizdiğimiz basit şekillerdir ve bir konumu göstermek için harikadırlar ve bunları

116
00:08:24,580 --> 00:08:26,380
‫hata ayıklarken kullanırız.

117
00:08:26,380 --> 00:08:29,380
‫Aslında bir vardiya oyununda hata ayıklama küreleri kullanmıyoruz.

118
00:08:29,410 --> 00:08:32,150
‫Şimdi bu hata ayıklama kürelerinden birini nasıl çizebileceğimizi görelim.

119
00:08:32,170 --> 00:08:36,430
‫Şimdi burada draw debug sphere adlı bir fonksiyonun dokümantasyonu var.

120
00:08:36,430 --> 00:08:38,800
‫Çizim hata ayıklama yardımcılarında mevcuttur.

121
00:08:39,850 --> 00:08:45,160
‫Böylece bu başlığı kopyalayabilir ve hata ayıklama alanını çağırmak istediğimiz her yere ekleyebiliriz.

122
00:08:45,190 --> 00:08:47,220
‫Şimdi tüm giriş parametrelerine bakın.

123
00:08:47,230 --> 00:08:52,240
‫İlk olarak, bir dünya alır, bu şekilde kürenin hangi dünyada çizileceğini bilir.

124
00:08:52,270 --> 00:08:57,100
‫Kürenin merkezi için bir F vektörünün yanı sıra yarıçap için bir float alır.

125
00:08:57,130 --> 00:09:00,800
‫Bu kürenin segment sayısı için bir N 32 alır.

126
00:09:00,820 --> 00:09:04,810
‫Ne kadar çok segment olursa, küre o kadar yuvarlak bir F rengi alır.

127
00:09:04,840 --> 00:09:08,350
‫Bu şekilde, bu küreyi hangi renkte çizeceğini bilir.

128
00:09:08,380 --> 00:09:11,080
‫Kalıcı çizgiler isteyip istemediğinizi bilmek ister.

129
00:09:11,080 --> 00:09:15,220
‫Başka bir deyişle, çizgiler hemen kaybolmalı mı yoksa devam mı etmeli?

130
00:09:15,220 --> 00:09:18,760
‫Eğer devam ederlerse, kürenin ömrünü bilmek ister.

131
00:09:18,760 --> 00:09:20,910
‫Küreyi çizmeyi ne zaman bırakmalı?

132
00:09:20,920 --> 00:09:25,660
‫Kalıcı çizgiler çizmiyorsanız, örneğin tek bir kare için çizmek istiyorsanız, negatif

133
00:09:25,660 --> 00:09:27,880
‫olanı yaşam süresi olarak geçirirsiniz.

134
00:09:27,910 --> 00:09:34,240
‫Şimdi son iki parametre isteğe bağlıdır, bu yüzden sadece ilk yedi parametreyi tartışarak bunu basit

135
00:09:34,240 --> 00:09:35,110
‫tutacağız.

136
00:09:35,110 --> 00:09:36,520
‫Bakalım nasıl çalışacak.

137
00:09:36,730 --> 00:09:42,100
‫Şimdi en üstte bir hata ayıklama küresi çizeceğim, hata ayıklama yardımcılarını çizeceğim.

138
00:09:42,850 --> 00:09:46,630
‫Bu hata ayıklama küresi çizme işlevi burada bildirilir.

139
00:09:46,660 --> 00:09:52,900
‫Şimdi oyuna başlayalım ve bunun nasıl çalıştığını görmek için basitçe bir hata ayıklama küresi çizelim.

140
00:09:52,900 --> 00:09:58,030
‫Bu yüzden draw debug sphere ve

141
00:09:58,110 --> 00:10:00,780
‫İlk girdi parametresi yeni bir dünyadır.

142
00:10:01,110 --> 00:10:09,420
‫Get World'ü çağırarak dünyamızı istediğimiz zaman elde edebiliriz, Get World mevcut dünyamıza yeni bir dünya işaretçisi

143
00:10:09,420 --> 00:10:10,500
‫döndürür.

144
00:10:10,500 --> 00:10:12,930
‫Böylece ilk girdi karşılanmış olacaktır.

145
00:10:13,260 --> 00:10:16,420
‫Daha sonra, kürenin merkezi için bir f vektörüne ihtiyacımız var.

146
00:10:16,440 --> 00:10:22,380
‫Şimdi bunu çağırıyoruz ve oynatmaya başlıyoruz, böylece basitçe get actor location diyebilirim ve bu tank havuzumuzun

147
00:10:22,380 --> 00:10:24,130
‫konumunu alacaktır.

148
00:10:24,150 --> 00:10:26,400
‫Tank sınıfında olduğumuza göre.

149
00:10:26,640 --> 00:10:29,250
‫Şimdi küreyi biraz yukarı kaldıracağım.

150
00:10:29,250 --> 00:10:41,380
‫Bu yüzden x için sıfır nokta F, Y için sıfır nokta F ve Z için 200 F değerine sahip bir F vektörü ekleyeceğim.

151
00:10:41,400 --> 00:10:45,120
‫Şimdi bu giriş parametrelerinin her birini kendi satırlarına yerleştireceğim.

152
00:10:45,120 --> 00:10:48,300
‫Böylece her bir girdi için ne aktardığımız açık olur.

153
00:10:48,330 --> 00:10:55,740
‫İkinci girdi, aktör konumu artı 200 uzunluğunda yukarı doğru işaret eden bir vektör olan bu

154
00:10:55,740 --> 00:10:57,230
‫ifadeyi alıyor.

155
00:10:57,240 --> 00:11:04,260
‫Bu iki vektörü birbirine eklediğimde, tankın Z ekseninde 200 birim yukarı kaldırılmış konumu elde

156
00:11:04,260 --> 00:11:04,950
‫edilir.

157
00:11:04,980 --> 00:11:09,600
‫Şimdi bir sonraki giriş parametresi, kürenin yarıçapı olacak.

158
00:11:09,870 --> 00:11:16,970
‫Yarıçapı 100 olan bir hata ayıklama küresinin neye benzediğini görebilmemiz için 100 F seçeceğim.

159
00:11:16,980 --> 00:11:18,900
‫Sırada segment sayısı var.

160
00:11:18,990 --> 00:11:20,470
‫Ben 12'yi seçeceğim.

161
00:11:20,490 --> 00:11:22,130
‫Neye benzediğini göreceğiz.

162
00:11:22,140 --> 00:11:29,640
‫Şimdi bir F rengi için, bir F renk sınıfı var ve kırmızı gibi birçok renk içeriyor.

163
00:11:29,850 --> 00:11:34,410
‫Şimdi B kalıcı çizgiler adlı boolean için true değerini seçeceğim.

164
00:11:34,410 --> 00:11:38,280
‫Ve bir sonraki giriş parametresi için ömür boyu bildirimimiz var.

165
00:11:38,280 --> 00:11:40,850
‫Varsayılan değeri negatif birdir.

166
00:11:40,860 --> 00:11:44,610
‫Bu, varsayılan olarak hata ayıklama küresini tek bir kare için çizeceği anlamına gelir.

167
00:11:44,610 --> 00:11:52,770
‫Ancak 30 saniye boyunca küreyi elde etmek için 30 F değerini geçeceğim ve son iki parametreyi atlayabilirim.

168
00:11:52,770 --> 00:11:55,670
‫İşte hata ayıklama küresi çizmek için fonksiyon çağrımız.

169
00:11:55,680 --> 00:11:58,260
‫Bunu derleyelim ve nasıl göründüğüne bakalım.

170
00:11:58,710 --> 00:12:00,210
‫Tamam, editöre geri döndüm.

171
00:12:00,210 --> 00:12:03,750
‫Bunu tam ekranda görebilmemiz için ikinci bir pencere açacağım.

172
00:12:03,750 --> 00:12:10,650
‫Pencere görünüm portlarına gidip Viewport ikiyi seçebiliyorum ve şimdi bu ikinci pencereyi görüyorum.

173
00:12:10,680 --> 00:12:15,300
‫Açıldığında tam ekran olmayabilir, ancak her zaman büyütebilirsiniz.

174
00:12:15,330 --> 00:12:18,570
‫Şimdi buradan oyunu alt p ile oynayabilirim.

175
00:12:18,600 --> 00:12:19,770
‫Şimdi şuna bir bak.

176
00:12:19,770 --> 00:12:21,300
‫İşte hata ayıklama alanımız.

177
00:12:21,330 --> 00:12:23,610
‫Tam yuvarlak olmadığına dikkat edin.

178
00:12:23,610 --> 00:12:26,570
‫Segment sayısı için 12'yi seçtik.

179
00:12:26,580 --> 00:12:30,960
‫Ne kadar çok segment seçerseniz, küreyi çizmek için o kadar çok çizgi gerekir.

180
00:12:30,990 --> 00:12:34,380
‫Şimdi, bu 100 yarıçaplı bir küre.

181
00:12:34,380 --> 00:12:40,740
‫Oldukça büyük ve kürenin merkezi tankın bulunduğu yerde, artı 200 birim havada.

182
00:12:40,740 --> 00:12:43,950
‫Hata ayıklama kürelerini bu şekilde çizebiliriz.

183
00:12:44,130 --> 00:12:49,890
‫Yani sizin göreviniz, imlecimizin altındaki izleme sonucunu kullanarak bir hata ayıklama küresi çizmektir.

184
00:12:49,890 --> 00:12:55,140
‫Bu nedenle, oyuncu denetleyicisi ref'inin null olup olmadığını kontrol ettiğimiz yeni if deyimimizde bir hata ayıklama küresi

185
00:12:55,140 --> 00:12:55,680
‫çizin.

186
00:12:55,710 --> 00:13:02,520
‫Şimdi isabet sonucumuzu kullanarak, isabet sonucundan çarpma noktasını alın ve bunu Kürenin Merkezi olarak

187
00:13:02,520 --> 00:13:03,240
‫kullanın.

188
00:13:03,390 --> 00:13:09,510
‫Şimdi kalıcı çizgiler giriş parametresi için false kullanın ve süre için negatif bir kullanın.

189
00:13:09,510 --> 00:13:14,250
‫Ve bu, kürenin tek bir kare için çizilmesiyle sonuçlanacaktır, bu sorun değil çünkü bunu tic işlevinin

190
00:13:14,250 --> 00:13:16,530
‫içindeki her karede çağırıyoruz.

191
00:13:16,530 --> 00:13:20,490
‫Bu yüzden videoyu duraklatın ve tick işlevinde hata ayıklama küresini çizin.

192
00:13:23,240 --> 00:13:23,570
‫Tamam.

193
00:13:23,570 --> 00:13:24,920
‫Tank'a geri döndüm.

194
00:13:26,180 --> 00:13:32,480
‫Şimdi burada bu draw debug sphere fonksiyon çağrısı var ve oynatmaya başla, böylece devam edip bunu kopyalayabilir

195
00:13:32,480 --> 00:13:38,450
‫ve oynatmaya başla'dan kaldırabilirim ve burada if deyimimizin içindeki tick'e geri döneceğiz ve sadece buraya

196
00:13:38,450 --> 00:13:42,380
‫yapıştıracağım ve bazı giriş parametrelerini değiştireceğiz.

197
00:13:42,380 --> 00:13:46,490
‫Birincisi, kürenin merkezinin yerini değiştiriyoruz.

198
00:13:46,490 --> 00:13:47,960
‫İsabet sonucunu kullanacağız.

199
00:13:47,960 --> 00:13:51,200
‫Bu yüzden isabet sonucu nokta çarpma noktası diyeceğim.

200
00:13:51,440 --> 00:13:54,440
‫Şimdi yarıçap için, bunu biraz daha küçük yapmak istiyorum.

201
00:13:54,440 --> 00:13:56,510
‫Şunu 25 yapalım.

202
00:13:56,810 --> 00:13:57,320
‫Sorun değil.

203
00:13:57,320 --> 00:13:59,360
‫Eğer bunu yapmadıysan, ben sadece bunu yapıyorum.

204
00:13:59,360 --> 00:14:01,280
‫Yani küre o kadar da büyük değil.

205
00:14:01,280 --> 00:14:06,230
‫Şimdi, sondan ikinci parametre kalıcı çizgiler içindir.

206
00:14:06,230 --> 00:14:13,190
‫Yanlış olarak geçeceğim ve süre için 30 saniye yerine negatif bir F noktası kullanacağım.

207
00:14:13,190 --> 00:14:18,920
‫Bu şekilde tek bir kare için bir küre elde edeceğiz, bu da sorun değil, yine bunu tik fonksiyonunda çağırıyoruz,

208
00:14:18,920 --> 00:14:21,560
‫bu yüzden bunu her karede çağıracağız.

209
00:14:21,560 --> 00:14:23,300
‫Devam edelim ve bunu derleyelim.

210
00:14:23,750 --> 00:14:25,130
‫Şimdi, editöre geri dönelim.

211
00:14:25,130 --> 00:14:28,010
‫Şimdi oynat tuşuna basarsam, şuna bir bak.

212
00:14:28,040 --> 00:14:34,280
‫Bir hata ayıklama kürem var ve imlecin altındaki çizgi izi için çarpma noktasında çiziliyor.

213
00:14:34,280 --> 00:14:42,590
‫Şimdi bunu duvarlara ve diğer nesnelere taşıyabiliriz ve görünürlük kanalını engelleyecek şekilde ayarlandıkları

214
00:14:42,590 --> 00:14:44,810
‫için iz bu nesnelere çarpıyor.

215
00:14:44,840 --> 00:14:46,460
‫Şu anda oldukça harika.

216
00:14:46,460 --> 00:14:50,630
‫Karmaşık izleme ile basit izlemeyi tartışacağımıza söz vermiştim.

217
00:14:50,660 --> 00:14:53,510
‫Oyunu oynarken size bir şey göstereceğim.

218
00:14:53,510 --> 00:14:57,770
‫Avuç içimizi kontrol edebilmek için görüntü alanına tıklayalım.

219
00:14:57,770 --> 00:15:02,360
‫Şimdi tilde tuşuna basın ve show collision konsol komutunu yazın.

220
00:15:02,360 --> 00:15:07,610
‫Benim ekranımda görmek o kadar kolay olmayabilir ama siz kendi ekranınızda kesinlikle görebilirsiniz.

221
00:15:07,610 --> 00:15:10,880
‫Piyonlarımızın çarpışmasına dikkat edin.

222
00:15:10,910 --> 00:15:18,020
‫Sadece kapsülü görmekle kalmıyor, aynı zamanda tank ve taret kafeslerimizin etrafındaki bu çarpışma hacmini de görebiliyoruz.

223
00:15:18,020 --> 00:15:20,000
‫Bu basit bir çarpışma.

224
00:15:20,090 --> 00:15:24,050
‫Size basit çarpışmayı nerede görebileceğimizi hızlıca göstereyim.

225
00:15:24,080 --> 00:15:31,250
‫Varlıklara ve kafeslere gideceğim ve örneğin burada tank tabanına çift tıklarsam, karmaşık çarpışmaya

226
00:15:31,250 --> 00:15:32,690
‫bakıyoruz.

227
00:15:32,690 --> 00:15:39,500
‫Üstteki bu göster simgesine tıklayıp karmaşık çarpışmayı seçersem, karmaşık çarpışmadaki tüm poligonları

228
00:15:39,500 --> 00:15:42,410
‫görebilirim ve bunlardan çok sayıda var.

229
00:15:42,440 --> 00:15:49,370
‫Göster simgesine tekrar tıklarsam ve bu sefer Basit Çarpışma'nın yanındaki onay kutusunu işaretlersem, başka bir çarpışma hacmi

230
00:15:49,370 --> 00:15:51,020
‫olduğunu fark ediyorum.

231
00:15:51,020 --> 00:15:56,780
‫Buna çarpışma gövdesi denir ve çok daha az geometriye sahiptir.

232
00:15:56,780 --> 00:16:00,950
‫Bu çarpışma hacmine sahip daha az sayıda poligon vardır.

233
00:16:00,950 --> 00:16:06,230
‫Bu, fizik motorunun vuruş olaylarındaki çakışmayı tespit etmek için kullandığı şeydir.

234
00:16:06,230 --> 00:16:11,360
‫Eğer karmaşık çarpışma kullanılıyor olsaydı, çok daha fazla hesaplama yapılması gerekirdi.

235
00:16:11,360 --> 00:16:17,780
‫Bu yüzden basit çarpışma hacimlerimiz var, bu yüzden bir çizgi izlemesi yaparken karmaşık çarpışma

236
00:16:17,780 --> 00:16:23,270
‫yerine basit çarpışma için izlersek performans açısından çok daha iyi olur.

237
00:16:23,870 --> 00:16:27,200
‫Şimdi imlecin altında isabet sonucunu elde ettik.

238
00:16:27,290 --> 00:16:32,480
‫Oraya ulaşmak için biraz çalışmak gerekti, ancak şimdi onu elde ettik ve bu konumu bir hata ayıklama küresi ile göstererek

239
00:16:32,480 --> 00:16:33,650
‫kanıtladık.

240
00:16:33,650 --> 00:16:36,800
‫Bu, izleme vuruşumuzun çalıştığını doğrulamak için güzel bir yoldur.

241
00:16:36,800 --> 00:16:42,650
‫Artık çalıştığını bildiğimize göre, bu konumu tankımızdaki tareti döndürmek için kullanabiliriz.

242
00:16:42,980 --> 00:16:45,260
‫Bunu da bir sonraki videoda yapacağız.

243
00:16:45,440 --> 00:16:46,520
‫Yakında görüşürüz.

