﻿1
00:00:04,170 --> 00:00:04,650
‫Hoi.

2
00:00:04,650 --> 00:00:05,580
‫Welkom terug.

3
00:00:05,610 --> 00:00:09,390
‫Nu weten we dat we het hitresultaat onder de cursor moeten krijgen.

4
00:00:09,420 --> 00:00:14,070
‫In deze video gaan we het nog even hebben over hoe dat werkt en wat dat betekent.

5
00:00:14,250 --> 00:00:20,520
‫Ons doel is dus om de trefferresultaten onder de cursor te krijgen en deze locatie te tonen, en we kunnen dit doen

6
00:00:20,520 --> 00:00:22,090
‫door een debugbol te tekenen.

7
00:00:22,110 --> 00:00:24,150
‫We zullen ook leren hoe we dat moeten doen.

8
00:00:24,180 --> 00:00:27,300
‫Dus laten we het hebben over iets dat een hitresultaat wordt genoemd.

9
00:00:27,600 --> 00:00:30,550
‫In games wil je vaak zoiets doen.

10
00:00:30,570 --> 00:00:32,520
‫We hebben een punt in de ruimte.

11
00:00:32,550 --> 00:00:39,210
‫We noemen dit punt start en het heeft het type F vector en we hebben een eindlocatie.

12
00:00:39,240 --> 00:00:43,260
‫Dit zal ook een punt in de ruimte zijn van het type F vector.

13
00:00:43,410 --> 00:00:48,720
‫Laten we nu zeggen dat we een onzichtbare lijn willen trekken van het beginpunt naar het eindpunt.

14
00:00:48,750 --> 00:00:54,450
‫En op het moment dat we deze lijn trekken, willen we kijken of er objecten tussen de

15
00:00:54,450 --> 00:00:55,800
‫begin- en eindlocatie staan.

16
00:00:56,280 --> 00:01:01,470
‫Als die er zijn, dan zal deze lijn die we in de ruimte tekenen dat object raken.

17
00:01:01,470 --> 00:01:05,400
‫Op het eerste gezicht, als dit gebeurt, noemen we dit een hitgebeurtenis.

18
00:01:05,430 --> 00:01:10,820
‫Als we nu zo'n onzichtbare lijn tekenen, noemen we dat het uitvoeren van een lijntracering.

19
00:01:10,830 --> 00:01:14,520
‫En als we iets raken, zeggen we dat we een trace hit hebben.

20
00:01:14,550 --> 00:01:21,240
‫Als we nu iets raken en een hit krijgen, slaat de trace-hit informatie op in een structuur die

21
00:01:21,240 --> 00:01:22,820
‫een hitresultaat wordt genoemd.

22
00:01:22,830 --> 00:01:24,700
‫Het type is F hit resultaat.

23
00:01:24,720 --> 00:01:31,560
‫Nu bevat de F-hitresultatenstructuur variabelen die informatie opslaan over de hitgebeurtenis, inclusief de hitlocatie

24
00:01:31,560 --> 00:01:38,680
‫als een f-vector in de ruimte en de actor die we raken, naast andere informatie.

25
00:01:38,700 --> 00:01:44,100
‫Wanneer we nu een lijntracering uitvoeren, doen we dit door een botsingskanaal op te geven.

26
00:01:44,130 --> 00:01:48,390
‫Meestal kiezen we bij lijntraceringen voor het kanaal dat zichtbaarheid wordt genoemd.

27
00:01:48,510 --> 00:01:56,070
‫Er bestaat een opsomming genaamd E Collision Channel, en in deze opsomming is er een opsommingsconstante

28
00:01:56,070 --> 00:01:57,030
‫genaamd XY-zichtbaarheid.

29
00:01:57,180 --> 00:02:01,470
‫Dit is een van de parameters die we specificeren bij het uitvoeren van een lijntracering.

30
00:02:01,740 --> 00:02:07,380
‫Als we nu het zichtbaarheidskanaal specificeren, betekent dit dat objecten die zijn ingesteld om het

31
00:02:07,380 --> 00:02:10,980
‫zichtbaarheidskanaal te blokkeren in hun botsingsinstellingen hitgebeurtenissen zullen registreren.

32
00:02:11,130 --> 00:02:16,350
‫Alle objecten die niet zijn ingesteld om het zichtbaarheidskanaal te blokkeren, genereren geen hitgebeurtenissen.

33
00:02:16,380 --> 00:02:19,350
‫Nu willen we het traceerresultaat onder de cursor.

34
00:02:19,590 --> 00:02:23,040
‫Stel je voor dat we het scherm hier hebben en hier is onze cursor nu.

35
00:02:23,040 --> 00:02:28,620
‫Aan het uiteinde van onze cursor hebben we een punt op het scherm wanneer we de functie gebruiken om het hitresultaat onder

36
00:02:28,620 --> 00:02:29,730
‫de cursor te krijgen.

37
00:02:29,760 --> 00:02:35,040
‫Wat er gebeurt, is dat we onze camera hebben en dat hij sommige objecten in de wereld kan zien, zoals de vloer hier.

38
00:02:35,040 --> 00:02:40,950
‫En we voeren een lijntracering uit vanaf de camera op het punt op het scherm dat overeenkomt met

39
00:02:40,950 --> 00:02:45,090
‫onze cursorlocatie, en we schieten de lijntracering recht de wereld in.

40
00:02:45,090 --> 00:02:51,570
‫En als we iets raken, genereren we een hitgebeurtenis en slaan we de informatie op in een hitresultaatstructuur.

41
00:02:52,080 --> 00:02:54,470
‫Dus laten we eens kijken hoe we dit kunnen doen.

42
00:02:54,480 --> 00:03:01,560
‫Ik ben hier in tank CP en wat ik zou willen doen is het hitresultaat onder de cursor elk frame krijgen, wat betekent dat

43
00:03:01,560 --> 00:03:03,240
‫we de tick-functie nodig hebben.

44
00:03:03,240 --> 00:03:08,160
‫Dus nogmaals, we gaan terug naar de basis en vinden hier onze vinkfunctie.

45
00:03:08,190 --> 00:03:14,100
‫Nu gebruiken we het nergens voor in de basispion, dus we kunnen deze functie naar de tankklasse verplaatsen, net zoals we

46
00:03:14,100 --> 00:03:15,570
‫deden met Begin Spelen.

47
00:03:15,570 --> 00:03:21,600
‫Dus ik ga de functiedeclaratie samen met zijn commentaar markeren en kopiëren.

48
00:03:21,600 --> 00:03:28,590
‫En daarna verwijder ik deze hele sectie, openbaar en zo, en dan ga ik terug naar Tank H

49
00:03:28,590 --> 00:03:33,150
‫en hier in de openbare sectie ga ik de vinkfunctiedeclaratie plakken.

50
00:03:33,150 --> 00:03:37,620
‫Nu gebruiken we het niet in de basispion, dus ik ga de tick-functie van de basispont verwijderen.

51
00:03:37,680 --> 00:03:40,710
‫CP Nu is het weg van de basispion.

52
00:03:41,340 --> 00:03:47,880
‫Nu hebben we het hier de intentie verklaard, maar we moeten ook de functie in tank definiëren.

53
00:03:48,060 --> 00:03:54,180
‫CP Ik ga het hier doen in de tank DHCP, net onder de spelerinvoercomponent.

54
00:03:54,180 --> 00:03:56,400
‫Dus we gaan zeggen void tick.

55
00:03:57,340 --> 00:03:59,620
‫Het duurt een float genaamd Delta Time.

56
00:04:00,940 --> 00:04:02,350
‫En daar is ons lichaam.

57
00:04:02,380 --> 00:04:09,180
‫Nogmaals, we hebben een tank nodig net voor de tick-functie, samen met de scope-resolutie-operator.

58
00:04:09,190 --> 00:04:14,530
‫En we moeten ook super tick en pass in Delta-tijd bellen.

59
00:04:16,450 --> 00:04:19,240
‫Dus we hebben nu een vinkje bij de tankklasse.

60
00:04:19,450 --> 00:04:23,560
‫Wat we willen doen, is de hitresultaten onder de cursor krijgen.

61
00:04:23,710 --> 00:04:25,450
‫Dus hier is hoe we het doen.

62
00:04:25,480 --> 00:04:31,260
‫De functie die we gaan gebruiken, bestaat op de spelercontroller, genaamd 'get hit result' onder de cursor.

63
00:04:31,270 --> 00:04:32,800
‫We hebben het hierover gehad.

64
00:04:32,980 --> 00:04:34,530
‫Hier is de syntaxis.

65
00:04:34,540 --> 00:04:36,160
‫Er is een traceerkanaal voor nodig.

66
00:04:36,190 --> 00:04:40,660
‫Onthoud dat we een traceerkanaal moeten specificeren en dat we zichtbaarheid gaan gebruiken.

67
00:04:40,840 --> 00:04:43,690
‫Nu hebben we twee extra invoerparameters.

68
00:04:43,720 --> 00:04:46,720
‫De eerste is een bool genaamd B trace complex.

69
00:04:46,750 --> 00:04:49,120
‫We zullen het zo hebben over wat dat betekent.

70
00:04:49,210 --> 00:04:52,270
‫En de derde invoerparameter is een F-trefferresultaat.

71
00:04:52,390 --> 00:04:57,820
‫Nu ga ik op F-hitresultaat klikken om dit type hier in de documentatie te zien.

72
00:04:58,480 --> 00:05:01,960
‫En als ik naar beneden scrol, zien we enkele variabelen.

73
00:05:01,990 --> 00:05:06,670
‫Een van hen heet acteur en in de beschrijving staat Actor Hit by the Trace.

74
00:05:06,700 --> 00:05:13,510
‫We hebben ook deze B-blokkerende treffer, die aangeeft of deze treffer het gevolg was van een blokkerende botsing.

75
00:05:13,750 --> 00:05:17,770
‫Nu hebben we, naast de andere variabelen, zaken als impactpunt.

76
00:05:18,010 --> 00:05:22,000
‫Dit is de locatie in de ruimte waar we daadwerkelijk iets raken.

77
00:05:22,600 --> 00:05:26,150
‫Dus waarom gaan we niet door en proberen we deze functie aan te roepen?

78
00:05:26,170 --> 00:05:32,170
‫We willen eerst onze speler, controller en dankzij wat we hier hebben gedaan en beginnen met spelen, hebben we

79
00:05:32,170 --> 00:05:33,370
‫speler, controller, ref.

80
00:05:33,400 --> 00:05:38,770
‫Het eerste dat we nu moeten doen, is controleren of de ref van de spelercontroller geldig is.

81
00:05:39,100 --> 00:05:42,140
‫We kunnen altijd een pointer doorgeven aan een if-statement.

82
00:05:42,160 --> 00:05:47,270
‫Het zal true retourneren als de aanwijzer zelf geen null-aanwijzer is.

83
00:05:47,290 --> 00:05:52,930
‫Als het een null-pointer is, retourneert het false in een if-statement en zullen we nooit de binnenkant van

84
00:05:52,930 --> 00:05:53,920
‫het if-statement bereiken.

85
00:05:54,070 --> 00:05:59,740
‫Het is altijd een goed idee om onze aanwijzers te controleren en ervoor te zorgen dat ze niet nul zijn voordat we ze gebruiken.

86
00:06:00,010 --> 00:06:04,960
‫Nu gaan we onze speler, controller ref krijgen en we gaan de pijl-operator gebruiken om

87
00:06:04,960 --> 00:06:08,950
‫de functie aan te roepen, het resultaat onder de cursor te krijgen.

88
00:06:09,100 --> 00:06:12,670
‫Nu kunnen we met de pop-up zien dat we drie invoerparameters hebben.

89
00:06:12,850 --> 00:06:14,650
‫De eerste is het Trace Channel.

90
00:06:14,950 --> 00:06:22,030
‫We gaan EA Collision Channel gebruiken en als we twee dubbele punten typen, krijgen we een vervolgkeuzelijst die ons

91
00:06:22,030 --> 00:06:26,350
‫alle verschillende opsommingsconstanten in de EA Collision Channel-enum laat zien.

92
00:06:26,530 --> 00:06:34,540
‫We willen zichtbaarheid gebruiken, dus we gaan XY-zichtbaarheid typen om aan te geven dat we het zichtbaarheidskanaal

93
00:06:34,540 --> 00:06:35,230
‫gebruiken.

94
00:06:35,440 --> 00:06:41,470
‫Nu heet de volgende parameter B Trace Complex en we gaan hier false aan doorgeven.

95
00:06:41,500 --> 00:06:44,590
‫Nu zullen we in een paar minuten bespreken wat dit betekent.

96
00:06:44,590 --> 00:06:46,900
‫Maar voor nu gaan we false gebruiken.

97
00:06:47,110 --> 00:06:50,300
‫Nu hebben we voor de derde parameter een hitresultaat nodig.

98
00:06:50,320 --> 00:06:53,140
‫Dit is een structuur van het type F-trefferresultaat.

99
00:06:53,170 --> 00:06:59,500
‫Als je er nu overheen beweegt, zie je dat het resultaat van een F-treffer wordt doorgegeven als een referentie, zoals

100
00:06:59,500 --> 00:07:02,740
‫aangegeven door de referentie-operator die eruitziet als een ampersand.

101
00:07:02,890 --> 00:07:08,320
‫Als u iets als referentie doorgeeft, is het meestal een kostenreferentie, wat betekent dat de functie

102
00:07:08,320 --> 00:07:09,730
‫het niet kan wijzigen.

103
00:07:09,730 --> 00:07:13,870
‫Maar hier geven we een F-trefferresultaat door als een niet-contreferentie.

104
00:07:14,110 --> 00:07:20,120
‫Dit is over het algemeen een hint dat de functie is ontworpen om deze invoerparameter rechtstreeks te wijzigen.

105
00:07:20,140 --> 00:07:27,730
‫Wat het resultaat van een treffer onder de cursor gaat doen, is die variabelen in het trefferresultaat invullen met informatie

106
00:07:27,730 --> 00:07:29,260
‫over het trefferresultaat.

107
00:07:29,290 --> 00:07:32,710
‫Dit betekent dat we een van deze f-hitresultaten moeten doorgeven.

108
00:07:32,740 --> 00:07:37,540
‫We gaan hier een lokale variabele maken in de if-controle van het type F-trefferresultaat.

109
00:07:38,380 --> 00:07:44,650
‫En we kunnen dit hitresultaat noemen en we kunnen deze N gewoon doorgeven als de derde invoerparameter.

110
00:07:44,830 --> 00:07:50,320
‫Nu, nadat we deze functie hebben aangeroepen, wordt dit trefferresultaat ingevuld met gegevens over

111
00:07:50,320 --> 00:07:51,180
‫deze lijntracering.

112
00:07:51,190 --> 00:08:00,040
‫We hebben bijvoorbeeld toegang tot het trefferresultaat dot actor om de geraakte acteur of dot impact point te krijgen om het punt in de

113
00:08:00,040 --> 00:08:03,430
‫ruimte te krijgen waar we de treffer hadden.

114
00:08:03,580 --> 00:08:08,470
‫Het resultaat van de treffer is dus wat we zullen gebruiken om informatie over de lijntracering te krijgen.

115
00:08:08,860 --> 00:08:13,450
‫Nu is het vaak leuk om het resultaat van een lijntracering te kunnen zien.

116
00:08:13,450 --> 00:08:18,010
‫We kunnen het resultaat van een lijntracering gemakkelijk visualiseren door een debugbol te tekenen.

117
00:08:18,340 --> 00:08:24,580
‫Debug-bollen zijn eenvoudige vormen die we in de ruimte tekenen, en ze zijn geweldig voor het weergeven van een locatie en we gebruiken

118
00:08:24,580 --> 00:08:26,380
‫deze bij het opsporen van fouten.

119
00:08:26,380 --> 00:08:29,380
‫We gebruiken eigenlijk geen debug-sferen in een shift-game.

120
00:08:29,410 --> 00:08:32,150
‫Dus laten we eens kijken hoe we een van deze foutopsporingsbollen kunnen tekenen.

121
00:08:32,170 --> 00:08:36,430
‫Hier is de documentatie voor een functie genaamd draw debug sphere.

122
00:08:36,430 --> 00:08:38,800
‫Het bestaat in draw debug helpers.

123
00:08:39,850 --> 00:08:45,160
‫Dus we kunnen deze header kopiëren en opnemen waar we debug debug sphere willen noemen.

124
00:08:45,190 --> 00:08:47,220
‫Kijk nu naar alle invoerparameters.

125
00:08:47,230 --> 00:08:52,240
‫Ten eerste is er een wereld nodig die op deze manier weet in welke wereld de bol moet worden getekend.

126
00:08:52,270 --> 00:08:57,100
‫Er is een F-vector nodig voor het middelpunt van de bol en een float voor de straal.

127
00:08:57,130 --> 00:09:00,800
‫Er is een N 32 nodig voor het aantal segmenten voor die bol.

128
00:09:00,820 --> 00:09:04,810
‫Hoe meer segmenten, hoe ronder de bol een F-kleur heeft.

129
00:09:04,840 --> 00:09:08,350
‫Zo weet hij in welke kleur deze bol moet worden getekend.

130
00:09:08,380 --> 00:09:11,080
‫Het wil weten of je aanhoudende lijnen wilt.

131
00:09:11,080 --> 00:09:15,220
‫Met andere woorden, moeten de lijnen onmiddellijk verdwijnen of moeten ze blijven bestaan?

132
00:09:15,220 --> 00:09:18,760
‫Als ze aanhouden, wil het de levensduur van de bol weten.

133
00:09:18,760 --> 00:09:20,910
‫Wanneer moet het stoppen met het tekenen van de bol?

134
00:09:20,920 --> 00:09:25,660
‫Als je geen blijvende lijnen tekent, stel dat je het voor een enkel frame zou willen tekenen, dan

135
00:09:25,660 --> 00:09:27,880
‫zou je de negatieve als de levensduur doorgeven.

136
00:09:27,910 --> 00:09:34,240
‫Nu zijn de laatste twee parameters optioneel, dus we houden het simpel door alleen de eerste zeven parameters

137
00:09:34,240 --> 00:09:35,110
‫te bespreken.

138
00:09:35,110 --> 00:09:36,520
‫Laten we eens kijken hoe dit werkt.

139
00:09:36,730 --> 00:09:42,100
‫Ik ga nu bovenaan een debug-bol tekenen, ik ga debug-helpers tekenen.

140
00:09:42,850 --> 00:09:46,630
‫Dat is waar deze functie voor het opsporen van fouten in de bol wordt gedeclareerd.

141
00:09:46,660 --> 00:09:52,900
‫Laten we nu naar beneden gaan om te beginnen met spelen en gewoon een debugbol tekenen om te zien hoe dit werkt.

142
00:09:52,900 --> 00:09:58,030
‫Dus ik ga draw debug sphere noemen en de.

143
00:09:58,110 --> 00:10:00,780
‫Eerste invoerparameter is een nieuwe wereld.

144
00:10:01,110 --> 00:10:09,420
‫We kunnen onze wereld op elk moment krijgen door Get World, Get World Returns een nieuwe wereldwijzer naar onze huidige wereld

145
00:10:09,420 --> 00:10:10,500
‫te noemen.

146
00:10:10,500 --> 00:10:12,930
‫Dus dat zal voldoen aan de eerste invoer.

147
00:10:13,260 --> 00:10:16,420
‫Vervolgens hebben we een f-vector nodig voor het middelpunt van de bol.

148
00:10:16,440 --> 00:10:22,380
‫Nu noemen we dit en beginnen te spelen, dus ik kan gewoon de locatie van de acteur bellen en dit zal

149
00:10:22,380 --> 00:10:24,130
‫de locatie van onze tankvijver krijgen.

150
00:10:24,150 --> 00:10:26,400
‫Omdat we in de tankklas zitten.

151
00:10:26,640 --> 00:10:29,250
‫Nu ga ik de bol iets omhoog brengen.

152
00:10:29,250 --> 00:10:41,380
‫Dus ik ga een F-vector toevoegen met nulpunt F voor de x nulpunt F voor de Y en zeg 200 F voor de Z.

153
00:10:41,400 --> 00:10:45,120
‫Nu ga ik deze invoerparameters elk op hun eigen regel plaatsen.

154
00:10:45,120 --> 00:10:48,300
‫Het is dus duidelijk wat we doorgeven voor elke invoer.

155
00:10:48,330 --> 00:10:55,740
‫De tweede invoer krijgt deze uitdrukking, de locatie van de acteur, plus een vector die naar boven wijst met een

156
00:10:55,740 --> 00:10:57,230
‫lengte van 200.

157
00:10:57,240 --> 00:11:04,260
‫Als ik deze twee vectoren bij elkaar optel, krijg ik de locatie van de tank met 200 eenheden omhoog in de

158
00:11:04,260 --> 00:11:04,950
‫Z-as.

159
00:11:04,980 --> 00:11:09,600
‫Nu de volgende invoerparameter, het wordt de straal van de bol.

160
00:11:09,870 --> 00:11:16,970
‫Ik ga 100 F kiezen, zodat we kunnen zien hoe een debug-bol met een straal van 100 eruitziet.

161
00:11:16,980 --> 00:11:18,900
‫Het volgende is het aantal segmenten.

162
00:11:18,990 --> 00:11:20,470
‫Ik kies er 12.

163
00:11:20,490 --> 00:11:22,130
‫We zullen zien hoe dat eruit ziet.

164
00:11:22,140 --> 00:11:29,640
‫Voor een F-kleur bestaat er een F-kleurklasse en deze heeft veel ingebouwde kleuren, zoals rood.

165
00:11:29,850 --> 00:11:34,410
‫Nu voor de boolean genaamd B persistente lijnen, ga ik waar kiezen.

166
00:11:34,410 --> 00:11:38,280
‫En voor de volgende invoerparameter hebben we de levensduurmelding.

167
00:11:38,280 --> 00:11:40,850
‫Het heeft een standaardwaarde van negatief één.

168
00:11:40,860 --> 00:11:44,610
‫Dat betekent dat het standaard de debug-bol tekent voor een enkel frame.

169
00:11:44,610 --> 00:11:52,770
‫Maar ik ga in 30 F passen, zodat we de bol 30 seconden krijgen en ik de laatste twee parameters kan weglaten.

170
00:11:52,770 --> 00:11:55,670
‫Dus hier is onze functieaanroep om een debug-bol te tekenen.

171
00:11:55,680 --> 00:11:58,260
‫Laten we dit compileren en kijken hoe het eruit ziet.

172
00:11:58,710 --> 00:12:00,210
‫Oké, ik ben weer terug in de editor.

173
00:12:00,210 --> 00:12:03,750
‫Ik ga een tweede venster openen zodat we dit op volledig scherm kunnen zien.

174
00:12:03,750 --> 00:12:10,650
‫Ik kan naar vensterweergavepoorten gaan en Viewport twee selecteren en nu zie ik dit tweede venster.

175
00:12:10,680 --> 00:12:15,300
‫Het is misschien niet volledig scherm wanneer het wordt geopend, maar u kunt het altijd maximaliseren.

176
00:12:15,330 --> 00:12:18,570
‫Vanaf hier kan ik het spel spelen met alt p.

177
00:12:18,600 --> 00:12:19,770
‫Bekijk dit nu eens.

178
00:12:19,770 --> 00:12:21,300
‫Hier is onze debug-sfeer.

179
00:12:21,330 --> 00:12:23,610
‫Merk op dat het niet perfect rond is.

180
00:12:23,610 --> 00:12:26,570
‫We kozen 12 voor het aantal segmenten.

181
00:12:26,580 --> 00:12:30,960
‫Hoe meer segmenten u kiest, hoe meer lijnen er nodig zijn om de bol te tekenen.

182
00:12:30,990 --> 00:12:34,380
‫Dit is een bol met een straal van 100.

183
00:12:34,380 --> 00:12:40,170
‫Het is behoorlijk groot en het middelpunt van de bol bevindt zich op de plaats van de tank, plus 200 eenheden in

184
00:12:40,170 --> 00:12:40,740
‫de lucht.

185
00:12:40,740 --> 00:12:43,950
‫Dus dit is hoe we debug-bollen kunnen tekenen.

186
00:12:44,130 --> 00:12:49,890
‫Dus jouw uitdaging is om een debugbol te tekenen met behulp van het traceerresultaat onder onze cursor.

187
00:12:49,890 --> 00:12:55,140
‫Teken dus een debug-bol in ons nieuwe if-statement waarin we controleren of spelercontroller ref niet null

188
00:12:55,140 --> 00:12:55,680
‫is.

189
00:12:55,710 --> 00:13:02,520
‫Gebruik nu ons hitresultaat, haal het impactpunt van het hitresultaat en gebruik dat als het centrum voor de

190
00:13:02,520 --> 00:13:03,240
‫bol.

191
00:13:03,390 --> 00:13:09,510
‫Gebruik nu voor de invoerparameter voor persistente regels false en gebruik voor de duur een negatieve.

192
00:13:09,510 --> 00:13:14,250
‫En dit zal resulteren in het tekenen van de bol voor een enkel frame, wat goed is omdat

193
00:13:14,250 --> 00:13:16,530
‫we dit elk frame binnen de tic-functie noemen.

194
00:13:16,530 --> 00:13:20,490
‫Dus pauzeer de video en teken de debug-bol in de tick-functie.

195
00:13:23,240 --> 00:13:23,570
‫Oké.

196
00:13:23,570 --> 00:13:24,920
‫Dus ik ben weer hier in Tank.

197
00:13:26,180 --> 00:13:32,480
‫Nu heb ik deze teken debug bol functie-aanroep hier en begin met spelen, zodat ik door kan gaan en dat kan kopiëren en

198
00:13:32,480 --> 00:13:38,450
‫het gewoon kan verwijderen uit het begin van het spel en we gaan terug naar het vinkje hier in onze if-instructie en

199
00:13:38,450 --> 00:13:42,380
‫ik ben gewoon ga het hier plakken en we gaan enkele invoerparameters wijzigen.

200
00:13:42,380 --> 00:13:46,490
‫Ten eerste veranderen we de locatie voor het middelpunt van de bol.

201
00:13:46,490 --> 00:13:47,960
‫We gaan het hitresultaat gebruiken.

202
00:13:47,960 --> 00:13:51,200
‫Dus ik ga zeggen hit resultaat punt impact punt.

203
00:13:51,440 --> 00:13:54,440
‫Nu voor de straal, ik zou dit een beetje kleiner willen maken.

204
00:13:54,440 --> 00:13:56,510
‫Laten we er ongeveer 25 van maken.

205
00:13:56,810 --> 00:13:57,320
‫Dat is goed.

206
00:13:57,320 --> 00:13:59,360
‫Als je dat niet deed, doe ik dit gewoon.

207
00:13:59,360 --> 00:14:01,280
‫Dus de bol is niet zo groot.

208
00:14:01,280 --> 00:14:06,230
‫Nu, de voorlaatste parameter die we doorgeven is voor persistente lijnen.

209
00:14:06,230 --> 00:14:12,500
‫Ik ga vals doorgeven en voor de duur in plaats van 30 seconden, ga ik negatief één punt F

210
00:14:12,500 --> 00:14:13,190
‫gebruiken.

211
00:14:13,190 --> 00:14:18,920
‫Op die manier krijgen we een bol voor een enkel frame, wat goed is, nogmaals, we noemen dit in

212
00:14:18,920 --> 00:14:21,560
‫de tick-functie, dus we noemen dit elk frame.

213
00:14:21,560 --> 00:14:23,300
‫Laten we doorgaan en dit compileren.

214
00:14:23,750 --> 00:14:25,130
‫Nu terug in de redactie.

215
00:14:25,130 --> 00:14:28,010
‫Als ik nu op play druk, bekijk dit dan eens.

216
00:14:28,040 --> 00:14:34,280
‫Ik heb een debug-bol en deze wordt getekend op het impactpunt voor de lijntracering onder de cursor.

217
00:14:34,280 --> 00:14:42,590
‫Nu kunnen we dit langs de muren en op andere objecten verplaatsen en het spoor raakt deze objecten omdat ze zijn ingesteld

218
00:14:42,590 --> 00:14:44,810
‫om het zichtkanaal te blokkeren.

219
00:14:44,840 --> 00:14:46,460
‫Behoorlijk geweldig nu.

220
00:14:46,460 --> 00:14:50,630
‫Ik beloofde dat we het zouden hebben over complexe tracering versus eenvoudige tracering.

221
00:14:50,660 --> 00:14:53,510
‫Ik ga je iets laten zien terwijl we het spel spelen.

222
00:14:53,510 --> 00:14:57,770
‫Laten we in de viewport klikken zodat we controle hebben over onze handpalm.

223
00:14:57,770 --> 00:15:02,360
‫Druk nu op de tilde-toets en typ het console-commando show collision.

224
00:15:02,360 --> 00:15:07,610
‫Nu is het misschien niet zo gemakkelijk te zien op mijn scherm, maar je kunt het zeker op je scherm zien.

225
00:15:07,610 --> 00:15:10,880
‫Let op de botsing voor onze pionnen.

226
00:15:10,910 --> 00:15:18,020
‫We kunnen niet alleen de capsule zien, maar we kunnen ook dit botsingsvolume rond onze tank en de mazen van de toren zien.

227
00:15:18,020 --> 00:15:20,000
‫Dit is een simpele botsing.

228
00:15:20,090 --> 00:15:24,050
‫Laat me je heel snel laten zien waar we de simpele botsing kunnen zien.

229
00:15:24,080 --> 00:15:31,250
‫Ik ga in op activa en meshes en als ik dubbelklik op, laten we zeggen, tankbasis hier, kijken we naar

230
00:15:31,250 --> 00:15:32,690
‫de complexe botsing.

231
00:15:32,690 --> 00:15:39,500
‫Als ik hier bovenaan op dit pictogram voor weergeven klik en complexe botsing selecteer, kan ik alle polygonen in de

232
00:15:39,500 --> 00:15:42,410
‫complexe botsing zien en dat zijn er veel.

233
00:15:42,440 --> 00:15:49,370
‫Als ik nogmaals op het pictogram Weergeven klik en deze keer het selectievakje naast Simple Collision aanvink, merk ik op dat

234
00:15:49,370 --> 00:15:51,020
‫er nog een botsingsvolume is.

235
00:15:51,020 --> 00:15:56,780
‫Dit wordt een aanvaringsromp genoemd en heeft veel minder geometrie.

236
00:15:56,780 --> 00:16:00,950
‫Er is een kleiner aantal polygonen met dit botsingsvolume.

237
00:16:00,950 --> 00:16:06,230
‫Dit is wat de physics-engine gebruikt om overlap in hitgebeurtenissen te detecteren.

238
00:16:06,230 --> 00:16:11,360
‫Als het de complexe botsing zou gebruiken, zou het veel meer berekeningen vereisen.

239
00:16:11,360 --> 00:16:17,780
‫Dit is de reden waarom we eenvoudige botsingsvolumes hebben, dus het is veel beter voor de prestaties wanneer

240
00:16:17,780 --> 00:16:23,270
‫we een lijntracering uitvoeren als we traceren voor eenvoudige botsingen in plaats van complexe botsingen.

241
00:16:23,870 --> 00:16:27,200
‫Dus nu hebben we het hitresultaat onder de cursor gekregen.

242
00:16:27,290 --> 00:16:32,480
‫Het kostte wat moeite om daar te komen, maar nu hebben we het en we hebben het bewezen door deze locatie te

243
00:16:32,480 --> 00:16:33,650
‫tonen met een debug-bol.

244
00:16:33,650 --> 00:16:36,800
‫Dit is een leuke manier om te bevestigen dat onze traceerhit werkt.

245
00:16:36,800 --> 00:16:42,650
‫Dus nu we weten dat het werkt, kunnen we die locatie gebruiken om de toren op onze tank te draaien.

246
00:16:42,980 --> 00:16:45,260
‫En dat doen we in de volgende video.

247
00:16:45,440 --> 00:16:46,520
‫Ik zie je snel.

