﻿1
00:00:04,400 --> 00:00:05,180
‫Hallo en welkom.

2
00:00:05,180 --> 00:00:10,070
‫In deze lezing gaan we kijken naar een speciale functie, de constructor genaamd, waarmee

3
00:00:10,070 --> 00:00:13,640
‫we standaardwaarden kunnen geven aan eigenschappen in onze klas.

4
00:00:13,850 --> 00:00:16,760
‫En we zullen zien wanneer het in de editor wordt aangeroepen.

5
00:00:16,790 --> 00:00:18,590
‫Laten we erin duiken en erachter komen.

6
00:00:19,460 --> 00:00:25,400
‫Nu, met deze triggercomponent, zou ik hier een tick-componentfunctie willen toevoegen, zodat

7
00:00:25,400 --> 00:00:32,420
‫we kunnen controleren welke componenten, welke andere actoren deze triggercomponent momenteel overlappen en we kunnen

8
00:00:32,420 --> 00:00:36,740
‫activeren als het de juiste soort actor is.

9
00:00:37,610 --> 00:00:39,860
‫Het probleem is, nou, we zullen zien wat het probleem is.

10
00:00:39,860 --> 00:00:46,160
‫Laten we proberen een vinkfunctie te implementeren als we naar de grab gaan om te zien hoe de declaratie van

11
00:00:46,160 --> 00:00:50,420
‫een componentfunctie eruit zou moeten zien, deze moet in het openbare gedeelte staan.

12
00:00:50,720 --> 00:00:53,420
‫Het is een virtuele leegte, vink componenten, delta tijd.

13
00:00:53,420 --> 00:00:55,700
‫Er zijn veel parameters, dus laten we het gewoon kopiëren.

14
00:00:56,070 --> 00:01:04,190
‫Ga naar de kop van de vinkcomponent, voeg deze toe onder ons begin met spelen en dan

15
00:01:04,490 --> 00:01:09,470
‫gaan we die definitie kopiëren, overnemen in onze triggercomponentstap.

16
00:01:10,010 --> 00:01:13,250
‫En een ding dat zal opvallen, is dat er een paar sleutelwoorden zijn die we kunnen verwijderen.

17
00:01:13,250 --> 00:01:15,080
‫We kunnen het virtuele trefwoord verwijderen.

18
00:01:15,080 --> 00:01:17,000
‫Dat is over het algemeen een regel die we kunnen volgen.

19
00:01:17,000 --> 00:01:19,370
‫We kunnen het override-zoekwoord ook verwijderen.

20
00:01:19,370 --> 00:01:21,830
‫Dit zijn dingen die niet in het C++-bestand hoeven te staan.

21
00:01:22,310 --> 00:01:24,710
‫We moeten de klassenaam toevoegen.

22
00:01:24,710 --> 00:01:33,020
‫Dus je probeert een component dubbele punt, dubbele punt, en dan vervangen we onze puntkomma door enkele accolades en

23
00:01:33,020 --> 00:01:35,840
‫moeten we de supertick component aanroepen.

24
00:01:35,840 --> 00:01:43,400
‫Dus omdat dat nogal een lange oproep is, ga ik het kopiëren van en een kopie pakken en in deze plakken.

25
00:01:43,400 --> 00:01:49,010
‫Wat dit doet, is dat het in wezen de tick-componentfunctie van de ouder aanroept.

26
00:01:49,010 --> 00:01:52,640
‫Dus de ouder is in dit geval onze dooscomponent.

27
00:01:53,000 --> 00:02:00,020
‫Het is dus belangrijk om dat te noemen voor het geval er functionaliteit is die moet worden gebruikt en ingeschakeld om dit

28
00:02:00,020 --> 00:02:01,340
‫onderdeel te laten werken.

29
00:02:01,640 --> 00:02:06,680
‫Als we dat niet doen, omzeilen we in wezen al die functionaliteit en kunnen er dingen kapot gaan.

30
00:02:06,920 --> 00:02:07,630
‫Heel belangrijk dus.

31
00:02:07,650 --> 00:02:13,670
‫Onthoud altijd dat het een oproep tot super is wanneer we de begin-, speel- en vinkcomponent implementeren.

32
00:02:13,850 --> 00:02:18,650
‫Laten we nu ons logbericht van Begin Play kopiëren en het in tick component plaatsen in plaats van tick component te

33
00:02:18,650 --> 00:02:19,010
‫zeggen.

34
00:02:19,010 --> 00:02:27,080
‫Als u zich aanmeldt om te zeggen dat de tick-component hier tikt, gaan we verder en compileren en kijken of

35
00:02:27,080 --> 00:02:29,030
‫die tick echt werkt.

36
00:02:29,300 --> 00:02:33,920
‫Zodra de compiler klaar is, laten we doorgaan en op play drukken, ons uitvoerlogboek openen en.

37
00:02:34,130 --> 00:02:37,340
‫Hmm, nou, er lijkt nu niets te gebeuren.

38
00:02:37,340 --> 00:02:43,820
‫De reden hiervoor is dat qua optimalisatie de meeste componenten automatisch niet-echt zijn en dat hun

39
00:02:43,820 --> 00:02:45,320
‫vinkje is uitgeschakeld.

40
00:02:45,590 --> 00:02:49,760
‫Dus acteurs hebben het meestal standaard ingeschakeld, maar componenten hebben het meestal uitgeschakeld.

41
00:02:49,880 --> 00:02:54,860
‫Dus in feite, als we kijken naar enkele van de andere componenten die we hebben, zoals onze zet waarvan we weten

42
00:02:54,860 --> 00:02:58,550
‫dat tikken voor jou werkt, kun je zien dat er bovenaan het bestand dit staat.

43
00:02:58,550 --> 00:03:06,890
‫Je verplaatst een functie en het heeft deze primaire component vinkje punt B kan ooit aanvinken is gelijk aan true als je

44
00:03:06,890 --> 00:03:09,710
‫deze eigenschap niet instelt op de klasse.

45
00:03:09,710 --> 00:03:15,230
‫Dit is dus een eigenschap van de klasse als een eigenschap van de klassieke primaire component tick en

46
00:03:15,230 --> 00:03:19,100
‫het is een struct met een B die een tick-eigenschap kan bevatten.

47
00:03:19,580 --> 00:03:28,430
‫Dus wat we hier doen, is dat we deze standaardwaarde instellen op de verplaatsingsklasse wanneer we deze construeren.

48
00:03:28,430 --> 00:03:29,630
‫Dat is wat deze functie is.

49
00:03:29,630 --> 00:03:36,920
‫Het wordt een constructor genoemd en is een functie die wordt aangeroepen wanneer we een nieuwe mover-component maken

50
00:03:37,190 --> 00:03:39,920
‫om automatisch standaardwaarden in te stellen.

51
00:03:40,160 --> 00:03:44,570
‫We kunnen enkele standaardwaarden in de kop van het bestand instellen, zoals we hebben gedaan met de verplaatsingstijd van het bericht.

52
00:03:44,810 --> 00:03:50,690
‫Maar een alternatief voor ooit in het headerbestand is dat we deze eigenschappen daadwerkelijk in de constructor

53
00:03:50,690 --> 00:03:51,620
‫kunnen instellen.

54
00:03:51,860 --> 00:03:54,890
‫Nu zou ik graag willen dat u de syntaxis hier opmerkt.

55
00:03:55,100 --> 00:04:02,300
‫Als we verder gaan met het verplaatsen van het bestand, kun je zien dat een constructor precies dezelfde naam heeft als

56
00:04:02,300 --> 00:04:03,290
‫de klasse.

57
00:04:03,290 --> 00:04:11,510
‫Dus de you mover is de klassenaam voor onze mover-componenten en de constructor ervan wordt ook wel you mover notice

58
00:04:11,870 --> 00:04:12,320
‫genoemd.

59
00:04:12,320 --> 00:04:14,600
‫Het heeft ook geen retourtype.

60
00:04:14,600 --> 00:04:19,460
‫Het heeft geen zin om iets terug te geven omdat we een nieuw object aan het bouwen zijn.

61
00:04:19,460 --> 00:04:22,670
‫We maken deze les gewoon waar.

62
00:04:22,880 --> 00:04:30,530
‫Dus alles wat we nodig hebben is toegang tot de eigenschappen van deze klasse en ook merken dat deze is ingesteld op openbaar.

63
00:04:30,530 --> 00:04:35,060
‫Het staat dus in het openbare gedeelte van onze klassendefinitie.

64
00:04:35,210 --> 00:04:39,410
‫Ik daag je dan ook uit om zelf afvinken mogelijk te maken.

65
00:04:39,410 --> 00:04:44,660
‫Dus je gaat een constructor maken in de koptekst en houd rekening met de syntaxis die we

66
00:04:44,660 --> 00:04:51,800
‫zowel in de bewegende films of H als de grijper H hebben gezien, je gaat tikken inschakelen, zoals we weer hebben gezien

67
00:04:51,800 --> 00:04:54,410
‫in die andere componenten in hun CP-bestanden.

68
00:04:54,710 --> 00:04:56,900
‫Dus je kunt gewoon kopiëren hoe dat wordt gedaan.

69
00:04:57,380 --> 00:05:02,380
‫U kunt ook vanuit de constructor inloggen om te proberen te zien wanneer het wordt aangeroepen?

70
00:05:02,390 --> 00:05:03,590
‫Is het zoals beginnen met spelen?

71
00:05:03,720 --> 00:05:07,050
‫Of wordt hij geroepen voordat hij in het spel komt of zo?

72
00:05:07,260 --> 00:05:09,600
‫Ga een video plaatsen en probeer het.

73
00:05:12,920 --> 00:05:13,250
‫Oké.

74
00:05:13,250 --> 00:05:14,030
‫Welkom terug.

75
00:05:14,060 --> 00:05:20,480
‫Dus we gaan naar onze trig-component op H en gaan een nieuwe openbare sectie maken.

76
00:05:20,480 --> 00:05:26,120
‫En hier herinneren we ons de dubbele punt aan het einde en dan moeten we het precies hetzelfde noemen als de

77
00:05:26,120 --> 00:05:26,600
‫klas.

78
00:05:26,600 --> 00:05:27,980
‫Dus dat is geen triggercomponent.

79
00:05:27,980 --> 00:05:33,260
‫Het is niet je trigger, maar je triggert componenten volledig.

80
00:05:33,260 --> 00:05:39,710
‫En dan hebben we geen argumenten in deze constructor, dus plaatsen we alleen lege haakjes en dan een puntkomma aan

81
00:05:39,710 --> 00:05:41,540
‫het einde van de regel.

82
00:05:41,540 --> 00:05:46,850
‫Nu kunnen we naar het CPP-bestand gaan en de implementatie hier uitvoeren.

83
00:05:46,860 --> 00:05:48,230
‫Nogmaals, we hebben geen retourtype nodig.

84
00:05:48,230 --> 00:05:53,330
‫Dus je activeert alleen componenten, de dubbele punt.

85
00:05:53,330 --> 00:05:58,280
‫Dubbelpunt je activeert componenten beetje repetitief, maar zo werkt het.

86
00:05:58,610 --> 00:06:05,210
‫Vervolgens plaatsen we enkele accolades en hierin kunnen we een van onze set-upcodes doen om de standaardwaarden aan de

87
00:06:05,510 --> 00:06:06,920
‫klasse-instantie te geven.

88
00:06:07,430 --> 00:06:12,470
‫Dus als we overgaan tot het pakken van een CPP en kijken wat het doet, kun je zien dat

89
00:06:12,470 --> 00:06:16,460
‫het zijn primaire component heeft, tech punt B kan het ooit gelijk stellen aan waar.

90
00:06:16,790 --> 00:06:17,750
‫Dus laten we dat uittypen.

91
00:06:17,750 --> 00:06:26,330
‫Primaire component tick dot B kan ooit tick B is slechts een voorvoegsel dat we vaak gebruiken wanneer dingen een booleaans

92
00:06:26,330 --> 00:06:31,280
‫type hebben dat gelijk is aan true met een kleine letter t.

93
00:06:31,760 --> 00:06:38,690
‫Dus omdat wijzigingen aan een constructor niet altijd goed worden doorgevoerd in live codering, ga ik de

94
00:06:38,690 --> 00:06:39,740
‫editor sluiten.

95
00:06:40,130 --> 00:06:46,370
‫Ik ga opnieuw opbouwen vanuit Visual Studio-code, en dan ga ik opnieuw starten vanuit het nieuwe

96
00:06:46,370 --> 00:06:46,790
‫projectbestand.

97
00:06:47,030 --> 00:06:51,230
‫Als dat klaar is, ga ik verder en druk ik op play, bekijk ons outputlogboek.

98
00:06:51,470 --> 00:06:54,620
‫En ja hoor, we kunnen zien dat de triggercomponent tikt.

99
00:06:55,250 --> 00:07:00,170
‫Dus ik ga dat logbericht verwijderen omdat het vervelend is en het uitvoerlogboek

100
00:07:00,170 --> 00:07:04,430
‫in Visual Studio-code gesloten, verwijder dit logbericht in het vinkje.

101
00:07:04,430 --> 00:07:05,780
‫We kunnen zien dat het nu werkt.

102
00:07:06,500 --> 00:07:10,670
‫En wat we wel wilden doen, is een log in onze constructor doen.

103
00:07:11,840 --> 00:07:17,960
‫Dus laten we een nieuw logboek maken met de tekst construeren, kijken of live codering het deze keer kan oppikken

104
00:07:17,960 --> 00:07:21,620
‫en dan gaan we naar ons uitvoerlogboek en kijken we meteen.

105
00:07:21,650 --> 00:07:23,450
‫Hier verschijnt niets.

106
00:07:24,290 --> 00:07:28,160
‫Als ik doorga en op play druk, kijk dan eens in mijn outputlog.

107
00:07:28,370 --> 00:07:33,950
‫Ik kan het logbericht zien dat de triggercomponent actief is en lang van tevoren.

108
00:07:33,950 --> 00:07:38,720
‫Eigenlijk kun je zien dat het ver vooruit bouwt terwijl het gewoon de wereld aan het creëren is.

109
00:07:39,050 --> 00:07:44,600
‫Het begint al heel vroeg met bouwen voordat we natuurlijk beginnen met spelen, want we moeten de hele wereld klaar hebben

110
00:07:44,600 --> 00:07:46,130
‫voordat we beginnen met spelen.

111
00:07:46,550 --> 00:07:51,440
‫Het gebeurt dus als we op play drukken, maar in feite gebeurt het ook in de editor.

112
00:07:51,440 --> 00:07:58,070
‫Dus als ik hier een actor selecteer en er vervolgens een component aan toevoeg en onze trigger toevoeg, kijk dan eens

113
00:07:58,070 --> 00:07:59,240
‫naar mijn uitvoerlogboek.

114
00:07:59,240 --> 00:08:03,020
‫Dan kun je zien dat het constructiebericht daadwerkelijk is afgedrukt.

115
00:08:03,020 --> 00:08:10,430
‫We moeten dus voorzichtig zijn met wat we doen in onze constructors, omdat ze eigenlijk de C++-code worden genoemd, net wanneer we

116
00:08:10,430 --> 00:08:14,480
‫aan het bewerken zijn, zelfs niet als we ons spel spelen.

117
00:08:14,480 --> 00:08:19,790
‫Deze objecten worden gemaakt en daarom ingesteld en moeten daarom hun constructor aanroepen.

118
00:08:20,120 --> 00:08:25,850
‫Ik ga door en verwijder de trigger opnieuw en ruim een beetje op door het

119
00:08:25,850 --> 00:08:29,960
‫logbericht te verwijderen, samen te stellen en ook ons start-play-logbericht.

120
00:08:30,200 --> 00:08:30,770
‫Goed spul.

121
00:08:30,770 --> 00:08:37,370
‫Dus in deze lezing hebben we gezien hoe we onze eigen componenten zo kunnen instellen dat ze bijna identiek zijn aan

122
00:08:37,370 --> 00:08:40,880
‫degene die zijn gemaakt in de sjablonen voor scènecomponenten en ACT-componenten.

123
00:08:40,880 --> 00:08:47,390
‫We hebben gezien hoe we een constructor kunnen gebruiken om standaardwaarden te geven aan eigenschappen in onze klasse.

124
00:08:47,750 --> 00:08:49,340
‫Ik zie je in de volgende lezing.

