﻿1
00:00:04,890 --> 00:00:05,790
‫Hallo en welkom.

2
00:00:05,790 --> 00:00:12,090
‫In deze lezing gaan we leren over objecten en hoe we functionaliteit op objecten en

3
00:00:12,090 --> 00:00:16,110
‫hun gegevens kunnen gebruiken om interessante programma's te maken.

4
00:00:16,110 --> 00:00:17,430
‫Laten we erin duiken.

5
00:00:18,940 --> 00:00:22,690
‫Laten we deze lezing dus beginnen met de introductie van een nieuw concept.

6
00:00:22,690 --> 00:00:27,400
‫Het concept van objecten is absoluut essentieel voor veel programmeertalen.

7
00:00:28,030 --> 00:00:35,230
‫Dus een object is in wezen iets in die zin dat je iets wilt vertegenwoordigen, zoiets als in een spel dat

8
00:00:35,230 --> 00:00:37,050
‫je misschien een avonturier hebt.

9
00:00:37,060 --> 00:00:44,710
‫Hij is een object in jouw wereld en hij heeft misschien wat gegevens die representeren wat hij is.

10
00:00:44,980 --> 00:00:50,020
‫Dingen als zijn ervaringspunten bijvoorbeeld, of misschien zijn niveau.

11
00:00:50,020 --> 00:00:51,430
‫Hij is een niveau twee avonturier.

12
00:00:51,430 --> 00:00:55,000
‫Dat soort dingen zijn de gegevens waaruit een avonturier bestaat.

13
00:00:55,510 --> 00:00:57,310
‫Maar dat is niet alles wat een avonturier is.

14
00:00:57,550 --> 00:01:04,990
‫Een avonturier is ook een functionaliteit, zoals het vermogen om pijlen af te vuren, zoals het

15
00:01:04,990 --> 00:01:06,400
‫kunnen springen enzovoort.

16
00:01:07,270 --> 00:01:09,370
‫Er zijn echter nog andere dingen die objecten kunnen zijn.

17
00:01:09,400 --> 00:01:15,700
‫We kunnen bijvoorbeeld dingen in de echte wereld vertegenwoordigen, in de computer, zoals de speler, en we

18
00:01:15,700 --> 00:01:20,770
‫kunnen relevante eigenschappen voor de speler opslaan, zoals gebruikt de speler een controller?

19
00:01:21,370 --> 00:01:23,930
‫Is de speler nummer één of nummer twee?

20
00:01:23,950 --> 00:01:29,380
‫Dat soort stukjes gegevens en de relevante functionaliteit zoals hun huidige invoer krijgen.

21
00:01:29,890 --> 00:01:35,200
‫Houden ze de spatiebalk ingedrukt, krijgen bijvoorbeeld het vaardigheidsniveau van de speler en dan kun

22
00:01:35,200 --> 00:01:38,440
‫je volledig abstracte objecten hebben, dingen als een lijst.

23
00:01:38,740 --> 00:01:42,010
‫Je zou dus een lijst kunnen hebben met de items één, twee, drie, vier.

24
00:01:42,010 --> 00:01:44,430
‫En het is of misschien kan het alle items bevatten die je leuk vindt.

25
00:01:44,440 --> 00:01:50,530
‫De gegevens kunnen veranderen, maar het kan ook functionaliteit hebben, zoals het laatste item uit de lijst verwijderen of toevoegen

26
00:01:50,530 --> 00:01:52,420
‫aan het einde van de lijst.

27
00:01:52,780 --> 00:01:55,120
‫Dus je kunt zien dat objecten heel, heel flexibel zijn.

28
00:01:55,120 --> 00:01:58,390
‫Ze kunnen worden gebruikt om talloze verschillende dingen weer te geven.

29
00:01:58,810 --> 00:02:05,230
‫En je zult merken dat de functionaliteit aan de onderkant van deze objecten eigenlijk is wat die knooppunten

30
00:02:05,230 --> 00:02:08,320
‫zijn of wat veel knooppunten zijn in Blueprint.

31
00:02:08,410 --> 00:02:14,830
‫Dus ze beginnen een beetje een toewijzing te krijgen tussen de objecten en de functionaliteit.

32
00:02:15,490 --> 00:02:15,760
‫Oké.

33
00:02:15,760 --> 00:02:19,630
‫Daarom hebben we een aantal nieuwe concepten geïntroduceerd, laten we het even kort samenvatten.

34
00:02:19,900 --> 00:02:24,310
‫Dus we hebben gezegd dat objecten verzamelingen van gegevens en functionaliteit zijn.

35
00:02:25,030 --> 00:02:28,870
‫Wat we ons misschien niet hebben gerealiseerd, is dat de acteurs eigenlijk objecten zijn.

36
00:02:28,870 --> 00:02:34,660
‫Acteurs zijn objecten die in een niveau kunnen gaan en je kunt dit zien als je naar je niveau gaat, je

37
00:02:34,660 --> 00:02:39,820
‫de kubus selecteert, je kunt zien dat er een heleboel in de details zit, een lading gegevens schilderen.

38
00:02:39,820 --> 00:02:45,130
‫En zoals we straks zullen zien, is er ook een hoop functionaliteit in de knooppuntvorm en blauwdruk.

39
00:02:46,120 --> 00:02:47,320
‫Dan zijn er componenten.

40
00:02:47,350 --> 00:02:50,800
‫Nu componenten waar we nog niet eerder in detail op in zijn gegaan, maar hier zijn ze.

41
00:02:51,070 --> 00:02:56,980
‫Het zijn objecten die op een acteur kunnen gaan, terwijl acteurs op het niveau gaan, componenten gaan op een acteur

42
00:02:56,980 --> 00:02:57,460
‫zelf.

43
00:02:57,730 --> 00:03:03,190
‫Dus als de kubus is geselecteerd, kun je bovenaan het detailvenster zien dat er een statische

44
00:03:03,190 --> 00:03:03,910
‫mesh-component is.

45
00:03:04,570 --> 00:03:11,050
‫Als u daar daadwerkelijk op klikt, ziet u dat het detailvenster een beperkte set details krijgt.

46
00:03:11,050 --> 00:03:19,180
‫Het toont u niet alle eigenschappen die beschikbaar zijn op de Kubus-actor, maar alleen de subset van eigenschappen die

47
00:03:19,180 --> 00:03:25,780
‫behoren tot de statische mesh-component, die in feite de component is die ons vertelt hoe we

48
00:03:25,780 --> 00:03:27,790
‫een kubus moeten tekenen.

49
00:03:28,480 --> 00:03:34,270
‫Nu kunnen deze objecten vaak veel meer data hebben dan dit, en dat betekent dat ze

50
00:03:34,270 --> 00:03:40,360
‫behoorlijk zwaar kunnen worden om door je computer te manipuleren en zeker als het deze objecten moet kopiëren.

51
00:03:40,810 --> 00:03:46,990
‫Dus in plaats van dat te doen, gebruiken we een slimme structuur, een referentie genaamd, die in wezen gewoon een adres

52
00:03:46,990 --> 00:03:53,800
‫is, of waar moet ik heen om dit object in het geheugen van de computer te vinden, zodat ik het object niet de

53
00:03:53,800 --> 00:03:55,450
‫hele tijd hoef te verplaatsen?

54
00:03:55,810 --> 00:04:01,750
‫We zullen iets meer vertellen over hoe dit in het geheugen werkt als we bij C++ komen, maar voor nu is het voldoende om

55
00:04:01,750 --> 00:04:03,910
‫te weten dat het slechts een adres is.

56
00:04:04,870 --> 00:04:09,640
‫Dus wat we kunnen doen, laten we bijvoorbeeld eens in Unreal duiken.

57
00:04:09,640 --> 00:04:17,110
‫Als we in ons hoofdniveau waren en we wilden wat functionaliteit op onze kubus gebruiken, dan kan ik de kubus in de scène selecteren

58
00:04:17,110 --> 00:04:22,030
‫en dan kan ik naar mijn niveaublauwdruk gaan en met de rechtermuisknop klikken, en

59
00:04:22,390 --> 00:04:27,490
‫dan kan ik klik op een verwijzing naar Cube maken en dit creëert een nieuw knooppunt.

60
00:04:28,000 --> 00:04:29,170
‫Wat doet dat nou?

61
00:04:29,170 --> 00:04:32,980
‫Dat zegt ons eigenlijk dat dit het adres van de Cube is.

62
00:04:32,980 --> 00:04:35,740
‫Als je iets met de kubus wilt doen, kun je hem hier vinden.

63
00:04:36,250 --> 00:04:41,230
‫Wat er in Blueprint gebeurt als je het spel uitvoert, is dat het die kubus gaat zoeken.

64
00:04:41,230 --> 00:04:47,080
‫En dan kun je vragen stellen of functionaliteit op de kubus gebruiken, zoals zeggen: Hé, waar

65
00:04:47,080 --> 00:04:48,640
‫woont je statische mesh-component?

66
00:04:48,820 --> 00:04:51,220
‫En hij gaat, oké, de statische mesh-componenten daar.

67
00:04:51,220 --> 00:04:56,260
‫Dus we gaan op zoek naar de statische mesh-component en dan kunnen we daar vragen over stellen en ze kunnen zeggen:

68
00:04:56,260 --> 00:04:57,310
‫Hé, hoe heet je?

69
00:04:57,310 --> 00:04:58,420
‫Statische mesh-component.

70
00:04:58,660 --> 00:05:01,360
‫En de statische component kan zeggen: Hé, ik ben Bob.

71
00:05:01,630 --> 00:05:07,510
‫En zo kunnen we deze referenties gebruiken en de functionaliteit van meerdere verschillende objecten gebruiken om te komen

72
00:05:07,810 --> 00:05:09,400
‫waar we heen willen.

73
00:05:09,670 --> 00:05:13,750
‫Nu hebben we gezegd dat de a-referentie is waar een object te vinden is.

74
00:05:13,990 --> 00:05:17,740
‫En nu iets anders dat het vermelden waard is, is een gegevensvenster.

75
00:05:17,740 --> 00:05:18,250
‫Wat is een.

76
00:05:18,440 --> 00:05:21,260
‫TAPPIN Nou, deze kubusreferentie heeft er eigenlijk een.

77
00:05:21,260 --> 00:05:26,590
‫Dit kleine blauwe ronde ding aan de rechterkant is een datapin.

78
00:05:26,600 --> 00:05:30,470
‫We hebben deze eerder gezien op de printstring-knooppunten daar aan de linkerkant, en ze

79
00:05:30,470 --> 00:05:31,040
‫zijn paars.

80
00:05:31,490 --> 00:05:37,190
‫En hoe verschilden deze van de andere soorten spelden die we hebben gezien, deze witte spelden?

81
00:05:37,700 --> 00:05:42,530
‫Welnu, de datapin is de invoer of uitvoer van gegevens voor een knooppunt.

82
00:05:42,770 --> 00:05:47,630
‫Dus een knooppunt, als het zich aan de linkerkant bevindt, is de invoer, het zijn de gegevens waarmee het knooppunt kan werken.

83
00:05:47,930 --> 00:05:51,950
‫Als het aan de rechterkant staat, zijn het de gegevens die Node produceert.

84
00:05:52,190 --> 00:06:00,430
‫Dus in het geval van de kubus produceert dit knooppunt een verwijzing naar de kubusacteur en vervolgens naar de uitvoeringspinnen.

85
00:06:00,710 --> 00:06:06,410
‫Dit zijn eigenlijk hoe die witte pinnen echt worden genoemd om ze te onderscheiden van de datapinnen, en ze

86
00:06:06,620 --> 00:06:09,680
‫zijn nog steeds wanneer het knooppunt moet worden uitgevoerd.

87
00:06:09,680 --> 00:06:12,230
‫Dus datapinnen zijn waarmee het knooppunt moet worden uitgevoerd.

88
00:06:12,440 --> 00:06:14,660
‫Uitvoeringspinnen zijn wanneer het moet worden uitgevoerd.

89
00:06:14,900 --> 00:06:21,230
‫Dus laten we met al die informatie een beetje gebruik maken van de functionaliteit van deze objecten.

90
00:06:21,590 --> 00:06:23,300
‫Dus we hebben onze kubusreferentie.

91
00:06:23,300 --> 00:06:30,050
‫Als we de kubusreferentiepin eraf slepen, kunt u alle functionaliteit van die kubus gebruiken.

92
00:06:30,380 --> 00:06:36,230
‫Zoals ik al zei, we hebben een component op de kubus, een statische mesh-component genaamd, en ik wil

93
00:06:36,230 --> 00:06:38,360
‫doorgaan en een verwijzing ernaar krijgen.

94
00:06:38,360 --> 00:06:42,770
‫Dus we gaan op zoek naar statische mesh-componenten.

95
00:06:43,340 --> 00:06:46,970
‫En het onderste item voor mij is om een statische mesh-component te krijgen.

96
00:06:46,970 --> 00:06:47,870
‫Daar kan ik op klikken.

97
00:06:48,110 --> 00:06:54,560
‫We krijgen een nieuw knooppunt waarbij de invoer een kubusreferentie is en de uitvoer een verwijzing hiernaar.

98
00:06:54,560 --> 00:06:56,240
‫Het is een statische mesh-component.

99
00:06:56,600 --> 00:07:01,640
‫Dus als we daar vanaf slepen, dan kunnen we om de functionaliteit van

100
00:07:01,640 --> 00:07:11,270
‫de statische mesh-component vragen, zoals de weergavenaam krijgen en dat geeft ons de invoer van de statische mesh-componentreferentie en het gebruikt de functionaliteit om de weergavenaam

101
00:07:11,270 --> 00:07:19,400
‫te krijgen en dan keert het terug een string of een tekstwaarde die we kunnen printen met behulp van de print

102
00:07:19,400 --> 00:07:20,270
‫string node.

103
00:07:20,270 --> 00:07:26,240
‫Dus we kunnen daar vanaf slepen en print string typen en dan kunnen we de uitvoeringsnotities aansluiten

104
00:07:26,240 --> 00:07:32,480
‫zodat dat na de andere twee printstrings loopt bij Begin Play, je zult merken dat sommige van deze knooppunten

105
00:07:32,480 --> 00:07:34,700
‫geen uitvoeringspinnen hebben en misschien verwarrend.

106
00:07:34,700 --> 00:07:35,690
‫Wanneer worden ze gevlucht?

107
00:07:35,930 --> 00:07:42,470
‫Welnu, ze worden uitgevoerd wanneer de blauwdrukken denken dat het gepast is, in wezen wanneer het nodig is door een

108
00:07:42,470 --> 00:07:44,810
‫knooppunt dat wel een uitvoeringspin heeft.

109
00:07:45,200 --> 00:07:50,030
‫Dus als we doorgaan en op play drukken, kun je zien dat het verschijnt met een naam kubus statische mesh

110
00:07:50,030 --> 00:07:55,550
‫component nul, zoiets als dat is een beetje programma, misschien is het niet, het is niet Bob. Het is een beetje meer betrokken

111
00:07:55,550 --> 00:07:56,150
‫dan dat.

112
00:07:56,180 --> 00:08:01,940
‫Maar je kunt zien dat we in wezen gecodeerd hebben in die reeks vragen die ik op mijn dia had.

113
00:08:02,510 --> 00:08:09,050
‫Dus ik daag je uit om door te gaan en de massa van onze statische mesh-componenten te krijgen.

114
00:08:09,260 --> 00:08:11,240
‫We hebben het in het verleden geconfigureerd.

115
00:08:11,240 --> 00:08:15,890
‫Als je naar het niveau gaat en naar het detailvenster kijkt, kun je zien dat een van de eigenschappen van

116
00:08:15,890 --> 00:08:20,270
‫de fysica de massa was en we hebben dat geconfigureerd als een stukje gegevens over de statische mesh-component.

117
00:08:20,780 --> 00:08:26,510
‫Welnu, als u het knooppunt voor de weergavenaam van de weergave verwijdert en de statische mesh-component wegsleept, zou

118
00:08:26,510 --> 00:08:33,380
‫u in staat moeten zijn om te zoeken naar get mass en dat zou u het stuk gegevens over de statische mesh-component

119
00:08:33,410 --> 00:08:39,650
‫moeten geven en kijken of u die waarde kunt afdrukken met onze print string node pauzeer video en probeer het.

120
00:08:43,240 --> 00:08:43,890
‫Oké.

121
00:08:43,900 --> 00:08:44,680
‫Welkom terug.

122
00:08:44,890 --> 00:08:51,610
‫Dus als we teruggaan naar de blauwdruk, verwijder dan gewoon onze weergavenaam, sleep de statische mesh-component weg en

123
00:08:51,610 --> 00:08:53,380
‫zoek naar get mass.

124
00:08:54,010 --> 00:08:55,780
‫Dan kunnen we dat knooppunt binnenhalen.

125
00:08:56,050 --> 00:09:00,580
‫We hebben hier een retourwaarde en dat wordt onze massawaarde.

126
00:09:00,580 --> 00:09:05,140
‫Je kunt zien dat als je eroverheen zweeft, de massa van dit onderdeel in kilogrammen wordt geretourneerd.

127
00:09:05,380 --> 00:09:12,300
‫En trouwens, retourwaarde betekent alleen de uitvoergegevens en dan kunnen we dat knooppunt naar onze in-tekenreeks

128
00:09:12,310 --> 00:09:14,290
‫slepen voor de afdrukreeks.

129
00:09:14,710 --> 00:09:17,770
‫En je ziet dat het een klein conversieknooppunt creëert dat in orde is.

130
00:09:17,770 --> 00:09:22,630
‫Het converteert van wat deze waarde ook is naar iets dat de printstring zal accepteren.

131
00:09:23,020 --> 00:09:28,990
‫We kunnen doorgaan en op play drukken en je ziet dat we de waarde van 1000 krijgen, waarvan we weten dat het de massa was die we

132
00:09:28,990 --> 00:09:30,940
‫hebben geconfigureerd of wat je ook daadwerkelijk configureert.

133
00:09:30,940 --> 00:09:34,570
‫U kunt dat veranderen en zien dat deze waarde ook zal veranderen.

134
00:09:34,930 --> 00:09:36,190
‫Dat was het dan voor deze lezing.

135
00:09:36,190 --> 00:09:42,790
‫We hebben geleerd over objecten en hun verwijzingen en over het gebruik van functionaliteitsknooppunten in blauwdrukken.

