﻿1
00:00:04,350 --> 00:00:04,760
‫Hallo.

2
00:00:04,800 --> 00:00:05,190
‫Welkom.

3
00:00:05,190 --> 00:00:09,750
‫In deze lezing gaan we de grijper veel betrouwbaarder maken.

4
00:00:09,750 --> 00:00:16,860
‫En we gaan het ook mogelijk maken om een vastgegrepen onderdeel te laten vallen, zodat we het kunnen rondgooien en

5
00:00:16,860 --> 00:00:19,890
‫het over het algemeen een beetje nuttiger maken.

6
00:00:19,920 --> 00:00:21,870
‫Laten we erin duiken en kijken hoe dit wordt gedaan.

7
00:00:22,850 --> 00:00:28,430
‫De reden dat we deze waterspuwer vaak niet kunnen oppikken, is dat componenten

8
00:00:28,430 --> 00:00:35,990
‫die natuurkunde simuleren omwille van de prestaties, in slaap vallen als ze een bepaalde tijd stil hebben gestaan.

9
00:00:35,990 --> 00:00:37,310
‫En dat is wat we zien.

10
00:00:37,310 --> 00:00:43,310
‫Deze fysica-simulatie van waterspuwers gaat slapen en wordt niet gewekt als we ons eraan

11
00:00:43,310 --> 00:00:45,290
‫vastmaken met onze fysica-handgreep.

12
00:00:45,290 --> 00:00:51,400
‫Dus wat we moeten leren is het wakker te maken als we het raken met een bolspoor.

13
00:00:51,410 --> 00:00:56,420
‫Laten we nu gaan kijken naar de primitieve componentdocumentatie die we hebben gezien.

14
00:00:56,420 --> 00:01:02,420
‫De primitieve component is het ding dat wordt geretourneerd door ons hitresultaat, maar wat eigenlijk een primitieve

15
00:01:02,420 --> 00:01:03,260
‫component is.

16
00:01:03,440 --> 00:01:10,010
‫Dus hier in de documentatie staat dat een primitieve component een scènecomponent is die

17
00:01:10,010 --> 00:01:16,160
‫een soort geometrie bevat of genereert en wordt weergegeven of gebruikt als botsingsgegevens.

18
00:01:16,160 --> 00:01:21,770
‫Dus over het algemeen zijn primitieve componenten degene die fysica kunnen simuleren.

19
00:01:22,130 --> 00:01:27,830
‫We kunnen hier dus enkele natuurkundige simulatiemethoden verwachten.

20
00:01:27,830 --> 00:01:32,030
‫En waar ik naar ga zoeken is een functie met het sleutelwoord wake erin.

21
00:01:32,060 --> 00:01:37,820
‫We gaan een paar functies doornemen totdat we er een vinden die zegt: Wek alle stijve lichamen.

22
00:01:38,270 --> 00:01:43,610
‫Stijve lichamen zijn in wezen een fysica-term voor objecten die fysica simuleren.

23
00:01:43,610 --> 00:01:44,780
‫Dus je kunt zien dat het een leegte heeft.

24
00:01:44,780 --> 00:01:46,700
‫Retourtype heeft geen argumenten.

25
00:01:46,700 --> 00:01:52,010
‫Dus we zouden dit gewoon moeten kunnen noemen als we ons eraan willen hechten.

26
00:01:52,010 --> 00:01:58,220
‫Dus als we een CP in onze if-statement gaan pakken, hebben we dit onderdeel bereikt, we staan op het punt het te

27
00:01:58,220 --> 00:01:58,610
‫pakken.

28
00:01:58,610 --> 00:02:04,550
‫Het eerste dat we moeten doen, is misschien laten we een variabele maken om deze primitieve component op te slaan.

29
00:02:04,550 --> 00:02:15,170
‫Dus we hebben een primitieve componentaanwijzer genaamd hit component set die gelijk is aan de hit resultaat

30
00:02:15,470 --> 00:02:17,990
‫punt get component.

31
00:02:18,530 --> 00:02:27,770
‫En dan die hitcomponent-aanwijzer gebruiken, kunnen we alle starre lichamen met een pijl wekken en dan de haakjes en de puntkomma

32
00:02:27,770 --> 00:02:29,690
‫aan het einde plaatsen.

33
00:02:29,690 --> 00:02:35,900
‫Dus dit zou dat onderdeel gewoon een kick moeten geven, wakker maken zodat het reageert op de fysica.

34
00:02:35,930 --> 00:02:39,160
‫Laten we nu vervangen waar we hitresultaten hebben gedaan.

35
00:02:39,200 --> 00:02:46,400
‫Krijg geen componenten in onze physics-handle-oproep om de locatie van componenten te pakken, want we hebben daar nu een variabele voor en

36
00:02:46,400 --> 00:02:49,460
‫laten we opnieuw compileren als dat klaar is.

37
00:02:49,460 --> 00:02:56,480
‫Laten we doorgaan en op play drukken en de waterspuwer voorlopig een beetje op de grond laten zitten en hem laten slapen

38
00:02:56,480 --> 00:02:58,910
‫en dan proberen hem op te rapen.

39
00:02:58,910 --> 00:03:05,120
‫En je zult merken dat we er geen problemen mee hebben om het op te rapen, het op de grond te laten liggen, wat dan ook.

40
00:03:05,120 --> 00:03:12,440
‫Het komt goed en maak die harde lichamen van de natuurkunde wakker en begin ze te simuleren zodat ze kunnen

41
00:03:12,440 --> 00:03:13,910
‫worden opgetild en vastgepakt.

42
00:03:13,910 --> 00:03:18,560
‫Het is je misschien opgevallen dat we momenteel niet in staat zijn om de

43
00:03:18,560 --> 00:03:23,300
‫physics-hendel vrij te geven, dus dat wordt jouw uitdaging om dat te doen in de release-functie.

44
00:03:23,360 --> 00:03:26,570
‫Dus je gaat de release-component op die physics-handle aanroepen.

45
00:03:26,570 --> 00:03:29,660
‫Dat is een functie die beschikbaar is op de fysica-handvataanwijzer.

46
00:03:29,840 --> 00:03:34,910
‫Je gaat eerst kijken of we een onderdeel hebben dat je kunt pakken.

47
00:03:34,910 --> 00:03:40,040
‫Dus als je een grijpcomponent krijgt die een aanwijzer naar de grijpcomponent terugstuurt, zijn die

48
00:03:40,040 --> 00:03:43,010
‫punten nul als de fysica-handgreep momenteel niets grijpt.

49
00:03:43,010 --> 00:03:48,110
‫Dus je kunt dat gebruiken om te controleren of we iets hebben en alleen vrijgeven als we momenteel iets

50
00:03:48,110 --> 00:03:48,530
‫pakken.

51
00:03:48,530 --> 00:03:53,090
‫En als bonus kun je een keer gaan kijken of we het doel opnieuw kunnen stellen.

52
00:03:53,090 --> 00:03:58,070
‫Alleen als we iets te pakken hebben, maar bekijk de video en ga aan de slag.

53
00:04:01,590 --> 00:04:02,470
‫Welkom terug.

54
00:04:02,490 --> 00:04:06,090
‫Dus laten we naar binnen gaan om een kopje te pakken.

55
00:04:06,230 --> 00:04:10,490
‫Ga naar de release-functie en verwijder het releaselog.

56
00:04:10,500 --> 00:04:16,650
‫En hier gaan we een if-statement plaatsen en we gaan zeggen of en nu we

57
00:04:16,650 --> 00:04:18,360
‫onze fysica-handvatten moeten pakken.

58
00:04:18,360 --> 00:04:25,650
‫Dus we gaan allereerst een componentaanwijzer voor je fysica-handvat doen, die we de fysica-handgreep

59
00:04:25,650 --> 00:04:31,410
‫gaan noemen en die gelijk stellen om de fysica-handgreep te krijgen.

60
00:04:31,590 --> 00:04:40,770
‫Dus dan gaan we zeggen dat als de fysica-handgreep gelijk is aan de nulaanwijzer, we willen doorgaan en terugkeren

61
00:04:40,770 --> 00:04:44,400
‫omdat we niets kunnen doen, iets vrijgeven.

62
00:04:44,400 --> 00:04:51,330
‫Als we helemaal geen physics-handvat hebben, dan willen we even checken of we op dit moment nog iets vasthouden

63
00:04:51,330 --> 00:04:52,650
‫met ons physics-handvat.

64
00:04:52,650 --> 00:05:03,390
‫Dus als, laten we zeggen, als de fysica-handgreep de component haakjes niet gelijk is aan de nul-aanwijzer, dan betekent de body van deze if-verklaring dat we

65
00:05:04,080 --> 00:05:09,420
‫iets hebben dat momenteel wordt gegrepen, nou dan gaan we een component voor

66
00:05:09,420 --> 00:05:16,980
‫de fysica-handgreep maken voor het loslaten van de pijl , die het gaat loslaten, zoals de naam al doet

67
00:05:16,980 --> 00:05:17,730
‫vermoeden.

68
00:05:17,730 --> 00:05:24,450
‫En een ding dat ik hier niet in de code heb gedaan, maar het is waarschijnlijk de moeite waard om aan de jouwe toe te

69
00:05:24,450 --> 00:05:32,160
‫voegen, is dat voordat we de component vrijgeven, het de moeite waard is om door te gaan en componenten te pakken te krijgen en dan de zwakke, alle

70
00:05:32,160 --> 00:05:36,180
‫stijve lichamen toe te voegen, net zoals wij deden voordat we het onderdeel pakken.

71
00:05:36,180 --> 00:05:41,520
‫Want als we een onderdeel zouden laten groeien en een tijdje niet bewegen, kan het ook gaan slapen.

72
00:05:41,520 --> 00:05:43,470
‫En dus loslaten zou niets uithalen.

73
00:05:43,470 --> 00:05:51,300
‫Dus dit is de moeite waard om toe te voegen omdat het die hoekzaak zou vangen en we willen de

74
00:05:51,300 --> 00:05:56,790
‫doellocatie niet in vinkje zetten als we een physics-handvat hebben dat momenteel niets grijpt.

75
00:05:56,790 --> 00:06:02,190
‫Dus hier in onze tick-componenten, gaan we een if-statement plaatsen dat precies hetzelfde zal zijn.

76
00:06:02,190 --> 00:06:11,730
‫Het gaat om te zeggen dat de fysica handvat de pijl een onderdeel krijgt dat niet gelijk is aan de nulaanwijzer.

77
00:06:11,760 --> 00:06:18,810
‫Vervolgens gaan we in de hoofdtekst van de if-instructie de berekening van de doellocatie en de instelling

78
00:06:18,810 --> 00:06:22,380
‫van de doellocatie ook in die fysica-handle plaatsen.

79
00:06:22,380 --> 00:06:24,330
‫Laten we dit opnieuw compileren en uitproberen.

80
00:06:24,330 --> 00:06:26,070
‫Laten we doorgaan en op play drukken.

81
00:06:26,970 --> 00:06:28,920
‫En probeer de waterspuwer te grijpen.

82
00:06:28,920 --> 00:06:33,420
‫En als ik dan de muis loslaat, valt hij weer op de grond.

83
00:06:33,420 --> 00:06:39,000
‫Dus en het lijkt niet te worden beïnvloed door of het wakker is of slaapt.

84
00:06:39,000 --> 00:06:43,610
‫We lijken het wakker te maken, ongeacht of we het elke keer dat we het oppakken, in wezen zijn.

85
00:06:43,620 --> 00:06:46,950
‫Dus dat lijkt precies te werken zoals ik het zou willen.

86
00:06:46,950 --> 00:06:47,910
‫Het loopt niet vast.

87
00:06:47,910 --> 00:06:49,950
‫Het voelt zo goed als goed.

88
00:06:49,980 --> 00:06:56,520
‫Het enige rare ding is dat wanneer ik erin ga, je kunt zien dat het een rare schok geeft

89
00:06:56,520 --> 00:06:59,550
‫omdat het in botsing komt met de speler.

90
00:06:59,550 --> 00:07:06,840
‫Nu kunnen we dit een klein beetje oplossen door naar onze waterspuwer in het detailvenster te gaan, de categorie Alle te

91
00:07:06,840 --> 00:07:13,950
‫selecteren, naar beneden te scrollen naar botsing en naar onze aangepaste voorinstelling voor botsingen te kijken en naar beneden te

92
00:07:13,950 --> 00:07:15,510
‫kijken in de objectreacties.

93
00:07:15,510 --> 00:07:17,760
‫We zullen hier later wat meer over zien.

94
00:07:17,760 --> 00:07:20,910
‫Er is een pionobjectreactie.

95
00:07:20,910 --> 00:07:25,650
‫Dit zegt eigenlijk: moet ik in botsing komen met de pion of wat?

96
00:07:25,680 --> 00:07:27,570
‫Wat moet mijn reactie zijn op de pion?

97
00:07:27,570 --> 00:07:31,740
‫Nou, ik ga het zo instellen dat het overlapt met de pion.

98
00:07:31,740 --> 00:07:36,690
‫En dat betekent dat als het met mij in botsing komt, het het in wezen gewoon negeert.

99
00:07:36,690 --> 00:07:41,880
‫En dan nog iets dat we moeten doen, omdat dit eigenlijk uit twee statische meshes bestaat,

100
00:07:41,880 --> 00:07:43,890
‫ze hebben hun eigen botsingsinstellingen.

101
00:07:43,890 --> 00:07:46,320
‫Ik ga naar de aarde heuvel.

102
00:07:46,320 --> 00:07:48,720
‫Dat is het ding onder de waterspuwer.

103
00:07:49,110 --> 00:07:52,350
‫En hier ga ik eigenlijk gewoon dingen vereenvoudigen.

104
00:07:52,350 --> 00:07:57,480
‫Ik ga het deel van de zandheuvel maken, zonder aanrijding.

105
00:07:57,490 --> 00:08:00,300
‫Dus ik ga het overschakelen naar de voorinstelling zonder botsing.

106
00:08:00,510 --> 00:08:05,250
‫Dan ga ik verder en druk op play, pak de waterspuwer van de vloer.

107
00:08:05,250 --> 00:08:09,540
‫En nu kun je zien dat wanneer ik ermee aan het rennen ben, er

108
00:08:09,540 --> 00:08:14,730
‫geen van die rare glitches is omdat het niet probeert te botsen met het botsingsnetwerk van de speler.

109
00:08:14,760 --> 00:08:15,540
‫Goed spul.

110
00:08:15,540 --> 00:08:22,170
‫In deze lezing hebben we geleerd hoe we onze grijper veel betrouwbaarder kunnen maken en ook hoe we

111
00:08:22,170 --> 00:08:23,790
‫de grijpcomponent kunnen loslaten.

112
00:08:23,790 --> 00:08:24,510
‫Goed spul.

113
00:08:24,510 --> 00:08:26,190
‫Ik zie je in de volgende lezing.

