﻿1
00:00:04,020 --> 00:00:10,620
‫Ons doel is dus om projectielen af te schieten en een explosie-effect te krijgen wanneer

2
00:00:10,620 --> 00:00:18,480
‫het projectiel iets raakt, ook wanneer we de vijandelijke toren raken en wanneer de vijandelijke torenprojectielen ons raken.

3
00:00:19,390 --> 00:00:21,310
‫Hallo en welkom terug.

4
00:00:21,340 --> 00:00:25,130
‫Laten we nu ons sectieplan eens bekijken en zien hoe ver we zijn gekomen.

5
00:00:25,150 --> 00:00:26,780
‫Nu weten we dat we een tank hebben gemaakt.

6
00:00:26,800 --> 00:00:28,250
‫Het kan over de hele wereld bewegen.

7
00:00:28,270 --> 00:00:30,250
‫We hebben een vijandelijke geschutsklasse gemaakt.

8
00:00:30,250 --> 00:00:36,630
‫We hebben vuurfunctionaliteit en projectielen toegevoegd, samen met gezondheidsschade en vernietiging in onze game.

9
00:00:36,640 --> 00:00:42,970
‫Nu hebben we voorwaarden voor winnen en verliezen en die tonen we met widgets in onze HUD.

10
00:00:43,000 --> 00:00:49,630
‫Het laatste punt is om onze speciale effecten toe te voegen, wat betekent dat we wat rook achter

11
00:00:49,630 --> 00:00:53,500
‫ons projectiel nodig hebben, evenals enkele explosies en geluiden.

12
00:00:53,500 --> 00:00:58,660
‫En er zullen nog een paar andere dingen zijn die we toevoegen om ons spel op te fleuren en het er een beetje meer

13
00:00:58,660 --> 00:00:59,760
‫gepolijst uit te laten zien.

14
00:00:59,770 --> 00:01:03,370
‫In deze video gaan we enkele trefferdeeltjes behandelen.

15
00:01:03,370 --> 00:01:06,880
‫Dit zijn speciale effecten voor als het projectiel iets raakt.

16
00:01:06,880 --> 00:01:10,000
‫Dit gaat om iets dat een deeltjessysteem wordt genoemd.

17
00:01:10,000 --> 00:01:15,610
‫Dus laten we teruggaan naar de editor en een kijkje nemen naar de deeltjessystemen die we in ons project hebben.

18
00:01:15,610 --> 00:01:17,110
‫Dus ik ben hier in de editor.

19
00:01:17,110 --> 00:01:22,840
‫Ik ga naar de map activa en effecten en hier hebben we drie effecten.

20
00:01:22,840 --> 00:01:25,600
‫Dit worden deeltjessystemen genoemd.

21
00:01:25,600 --> 00:01:30,280
‫Nu hebben we een treffereffect, een doodseffect en een projectielspoor.

22
00:01:30,280 --> 00:01:36,910
‫Laten we nu doorgaan en dubbelklikken op p hit effect en je zult zien dat we hier een deeltjessysteemeditor

23
00:01:36,910 --> 00:01:37,570
‫hebben.

24
00:01:37,570 --> 00:01:43,960
‫En in dit kleine kijkvenster zullen we deze explosie keer op keer zien gebeuren.

25
00:01:43,960 --> 00:01:49,990
‫Nu is dit deeltjessysteem gelukkig al voor ons gemaakt en het ziet eruit als een leuke

26
00:01:49,990 --> 00:01:50,830
‫kleine explosie.

27
00:01:50,830 --> 00:01:56,710
‫En we zouden deze explosie graag zien gebeuren zodra het projectiel iets raakt.

28
00:01:56,710 --> 00:01:59,200
‫Dat is dus ons doel voor deze video.

29
00:01:59,200 --> 00:02:04,210
‫Dus hier in de code van V wil ik teruggaan naar onze projectielklas.

30
00:02:04,210 --> 00:02:11,890
‫Dus laten we naar projectiel H gaan en ik ga een variabele aan deze klasse toevoegen en dit

31
00:02:11,890 --> 00:02:13,480
‫wordt een deeltjessysteem.

32
00:02:13,480 --> 00:02:18,070
‫Dit kan een privévariabele zijn en het type wordt U.

33
00:02:18,070 --> 00:02:24,280
‫Deeltjessysteem en het wordt een aanwijzer en we kunnen dit hitdeeltjes noemen.

34
00:02:24,280 --> 00:02:29,140
‫Nu ga ik dit naar voren declareren en ga ik dit ook een nieuwe eigendom geven.

35
00:02:29,140 --> 00:02:36,220
‫Dus laten we zeggen dat je eigendom bent en ik wil dit overal maken, zodat we dit kunnen instellen vanaf de

36
00:02:36,220 --> 00:02:37,720
‫blauwdruk voor ons projectiel.

37
00:02:37,720 --> 00:02:43,750
‫En nu ik toch bezig ben, ik ga dit een categorie geven en ik plaats dit in de

38
00:02:43,750 --> 00:02:48,070
‫categorie gevechten, omdat het een beetje gerelateerd is aan onze andere gevechtsvariabelen.

39
00:02:48,070 --> 00:02:54,430
‫Dit kan nu overal worden bewerkt, omdat we van plan zijn dit vanuit de blauwdruk in te stellen, zodat we

40
00:02:54,430 --> 00:02:55,840
‫dit kunnen gaan compileren.

41
00:02:56,170 --> 00:03:02,710
‫Laten we nu teruggaan naar de editor en ik sluit mijn andere blauwdrukken af en ga naar

42
00:03:02,710 --> 00:03:04,660
‫onze acteursmap hier in blauwdrukken.

43
00:03:04,780 --> 00:03:07,510
‫Acteurs, hier is onze B. P. projectiel.

44
00:03:07,510 --> 00:03:11,200
‫Laten we dat openen en de volledige blauwdrukeditor openen.

45
00:03:11,200 --> 00:03:13,360
‫Laten we nu eens in de details kijken.

46
00:03:13,360 --> 00:03:13,720
‫Paneel.

47
00:03:13,720 --> 00:03:19,120
‫Onthoud dat BP-projectiel zelf moet worden geselecteerd om deze algemene variabelen te zien.

48
00:03:19,120 --> 00:03:22,420
‫En hier is onze gevechtssectie en we zien geraakte deeltjes.

49
00:03:22,420 --> 00:03:26,500
‫Nu hebben we hier een vervolgkeuzelijst en kunnen we deeltjessystemen selecteren.

50
00:03:26,500 --> 00:03:32,890
‫Aangezien deze variabele van het type partikelsysteem is, gaan we het hiteffect gebruiken voor onze hitdeeltjes.

51
00:03:32,890 --> 00:03:38,230
‫Dus nu hebben we een variabele en de waarde ervan wordt hier in de projectielblauwdruk ingesteld.

52
00:03:38,230 --> 00:03:40,750
‫Laten we dit dus compileren en opslaan.

53
00:03:40,780 --> 00:03:47,770
‫De volgende stap is om dit deeltjessysteem daadwerkelijk te spawnen zodra we iets hebben geraakt, wat betekent dat een hit

54
00:03:47,770 --> 00:03:54,730
‫de perfecte functie is om dit te doen, nu moeten we weten hoe we deeltjes kunnen spawnen en gameplay kunnen

55
00:03:54,760 --> 00:03:55,240
‫gebruiken.

56
00:03:55,240 --> 00:03:57,880
‫Statica heeft daar een handige functie voor.

57
00:03:58,240 --> 00:04:06,130
‫Het wordt spawn-emitter op locatie genoemd en er staat dat het gespecificeerde effect op de gegeven locatie en rotatie

58
00:04:06,130 --> 00:04:07,060
‫wordt afgespeeld.

59
00:04:07,240 --> 00:04:09,460
‫Vuur en vergeet.

60
00:04:09,580 --> 00:04:14,710
‫Dit is fijn omdat we ons geen zorgen hoeven te maken over het verwijderen of verwijderen ervan.

61
00:04:14,710 --> 00:04:17,140
‫We ontslaan deze functie gewoon.

62
00:04:17,140 --> 00:04:22,300
‫Het brengt het deeltjessysteem voort en zorgt ervoor dat het voor ons wordt opgeruimd, wat geweldig is.

63
00:04:22,300 --> 00:04:25,210
‫Laten we nu eens kijken naar de syntaxis.

64
00:04:25,210 --> 00:04:30,520
‫Er zijn een aantal invoerparameters, maar deze functie heeft een aantal overbelastingen.

65
00:04:30,520 --> 00:04:35,770
‫Nu, aangezien er een aantal versies van deze functie zijn, gaan we naar de code van V en kijken

66
00:04:35,770 --> 00:04:37,240
‫we naar die verschillende versies.

67
00:04:37,690 --> 00:04:44,050
‫Nu ga ik projectiel CP openen en de on hit-functie bekijken.

68
00:04:44,050 --> 00:04:52,570
‫Nu, hier beneden, ga ik je gameplay-statistieken spawn-emitter op locatie typen en zodra ik de openingshaakjes

69
00:04:52,570 --> 00:04:58,210
‫typ, toont de pop-up me de invoerparameters die ik moet

70
00:04:58,210 --> 00:04:58,990
‫doorgeven.

71
00:04:58,990 --> 00:05:03,940
‫Maar we zien een van de drie, wat betekent dat er drie verschillende versies van deze functie zijn.

72
00:05:03,940 --> 00:05:05,260
‫Drie overbelastingen.

73
00:05:05,290 --> 00:05:10,900
‫Ik ga twee keer op de pijl-omlaag klikken om deze specifieke overbelasting te bekijken.

74
00:05:10,990 --> 00:05:18,850
‫Nu is er een wereldcontextobject, een deeltjessysteem en een locatie nodig, en de overige invoerparameters.

75
00:05:19,210 --> 00:05:21,460
‫Standaardwaarden, dus ze zijn optioneel.

76
00:05:21,490 --> 00:05:25,940
‫Merk op dat de rotatieparameter is ingesteld op nul rotator.

77
00:05:25,960 --> 00:05:33,070
‫Als we willen, kunnen we de rotatie van de zenders instellen op de rotatie van de acteur door de actieve rotatie in

78
00:05:33,070 --> 00:05:34,030
‫te voeren.

79
00:05:34,150 --> 00:05:39,730
‫Het is niet zo belangrijk, maar ik zou de zender met dezelfde rotatie als de acteur willen spawnen.

80
00:05:39,730 --> 00:05:43,510
‫Dus ik zou graag actieve rotatie gebruiken en dat doorgeven.

81
00:05:43,510 --> 00:05:45,580
‫Maar de rest van deze parameters zijn optioneel.

82
00:05:45,580 --> 00:05:52,240
‫Dus omdat we weten dat we de spawn-zender op locatie moeten aanroepen om een deeltjessysteem te spelen, kunnen we dit

83
00:05:52,240 --> 00:05:54,010
‫doen in de on hit-functie.

84
00:05:54,400 --> 00:06:00,310
‫We weten dat de eerste parameter een wereldcontextobject is en we weten al hoe we daarmee om moeten gaan.

85
00:06:00,430 --> 00:06:06,100
‫We weten dat er een deeltjessysteem voor nodig is en we hebben een deeltjessysteemvariabele die we kunnen invoeren.

86
00:06:06,130 --> 00:06:13,390
‫We weten ook dat we een locatie en een rotatie nodig hebben en we weten hoe we die voor een bepaalde acteur kunnen krijgen met behulp van de

87
00:06:13,390 --> 00:06:16,330
‫locatie van de acteur en de rotatie van de acteur.

88
00:06:16,330 --> 00:06:22,450
‫Dus aangezien je al deze informatie hebt, zou ik willen dat je de U-gameplay statica-functie

89
00:06:22,450 --> 00:06:27,580
‫spawn emitter op locatie in de on hit-functie voor de projectielklasse gebruikt.

90
00:06:27,580 --> 00:06:34,120
‫Dus dit doorgeven aan het wereldcontextobject, het deeltjessysteem zelf passeren, die nieuwe variabele voor hitdeeltjes

91
00:06:34,120 --> 00:06:41,230
‫die we hebben gemaakt en de projectiellocatie gebruiken met behulp van get active location en gebruik de

92
00:06:41,230 --> 00:06:44,290
‫projectielrotatie met behulp van get actor-rotatie.

93
00:06:44,680 --> 00:06:49,390
‫Pauzeer de video en spawn de zender nu in de on hit-functie.

94
00:06:53,310 --> 00:06:53,640
‫Oké.

95
00:06:53,640 --> 00:06:59,460
‫Dus ik ga deze regel verwijderen die we hebben gebruikt om de functie-overbelasting voor deze functie te

96
00:06:59,460 --> 00:07:00,090
‫bekijken.

97
00:07:00,090 --> 00:07:04,080
‫En ik ga dit plaatsen net voordat we de acteur vernietigen.

98
00:07:04,080 --> 00:07:08,010
‫Dus als je het bijvoorbeeld aan het einde van de functie plaatst, is dat goed.

99
00:07:08,040 --> 00:07:10,320
‫De uitdaging werd voor u opengelaten.

100
00:07:10,320 --> 00:07:15,600
‫Maar we gaan dit plaatsen net voordat we de acteur vernietigen, want als we de acteur

101
00:07:15,600 --> 00:07:19,050
‫vernietigen, heeft het geen zin om daarna deeltjes te spawnen.

102
00:07:19,050 --> 00:07:21,570
‫Dus we gaan dit doen voordat we de acteur vernietigen.

103
00:07:21,570 --> 00:07:30,210
‫Dus we gaan zeggen dat je gameplay-statistieken spawn-emitter op locatie spawnen en eerst hebben we ons wereldcontext-object nodig,

104
00:07:30,210 --> 00:07:32,370
‫dat dit gaat zijn.

105
00:07:32,400 --> 00:07:39,870
‫Vervolgens hebben we onze hitdeeltjes nodig, gevolgd door onze acteurslocatie waarvoor we de locatie van de acteur

106
00:07:39,870 --> 00:07:40,950
‫gaan gebruiken.

107
00:07:41,040 --> 00:07:48,870
‫Vervolgens gaan we de rotatie doorgeven waarvoor we get actor-rotatie zullen gebruiken en nu spawnen we de

108
00:07:48,870 --> 00:07:50,820
‫zender op de locatie.

109
00:07:50,850 --> 00:07:57,600
‫Nu, één ding dat ik zou willen benadrukken is dat als mijn eigenaar een nul-aanwijzer is en we vroeg uit deze

110
00:07:57,600 --> 00:08:02,520
‫functie terugkeren, het misschien een goed idee is om het projectiel daar te vernietigen.

111
00:08:02,520 --> 00:08:09,330
‫Dus ik zou deze return-instructie willen verwijderen en deze if-instructie zijn eigen lichaam nog steeds teruggeven.

112
00:08:09,330 --> 00:08:13,920
‫Maar net voordat we terugkeren, zouden we de acteur moeten vernietigen.

113
00:08:13,920 --> 00:08:17,160
‫Dus ik ga hier vernietigen als check.

114
00:08:17,250 --> 00:08:24,300
‫En zelfs als we niet slagen voor alle andere controles hier, het controleren van de andere acteur, willen we niet dat

115
00:08:24,330 --> 00:08:27,240
‫een projectiel alleen maar rondhangt in de wereld.

116
00:08:27,240 --> 00:08:31,770
‫Dus we moeten deze tweede oproep naar vernietiging buiten de if-controle verplaatsen.

117
00:08:31,770 --> 00:08:35,670
‫Op die manier vernietigen we het projectiel wanneer het iets raakt, wat er ook gebeurt.

118
00:08:35,670 --> 00:08:39,120
‫Op die manier hebben we om welke reden dan ook geen slepende projectielen.

119
00:08:39,120 --> 00:08:39,680
‫Oké?

120
00:08:39,690 --> 00:08:44,940
‫En hoewel we veilig zijn, zouden we moeten opmerken dat we hier trefferdeeltjes gebruiken, wat betekent dat

121
00:08:44,940 --> 00:08:49,800
‫we moeten controleren of de trefferdeeltjes zijn ingesteld voordat we ze proberen te gebruiken.

122
00:08:49,800 --> 00:08:56,250
‫Anders gebruiken we mogelijk een variabele voor hitdeeltjes die niet is ingesteld en mogen we geen null-pointers

123
00:08:56,250 --> 00:08:56,700
‫gebruiken.

124
00:08:56,700 --> 00:09:03,690
‫Dus we gaan hier een if-controle plaatsen om te zien of de geraakte deeltjes geldig zijn en als het geldig is, dan is

125
00:09:03,690 --> 00:09:07,320
‫het veilig om de spawn emitter op locatie hier te bellen.

126
00:09:07,350 --> 00:09:08,280
‫Oke.

127
00:09:08,280 --> 00:09:10,380
‫Laten we doorgaan en dit nu compileren.

128
00:09:10,470 --> 00:09:16,200
‫En met een succesvolle compilatie springen we terug in de editor en hier is het BP-projectiel.

129
00:09:16,200 --> 00:09:21,420
‫We hebben onze hitdeeltjes ingesteld, dus zorg ervoor dat die zijn ingesteld voordat we dit uittesten.

130
00:09:21,420 --> 00:09:23,010
‫Anders zien we niets.

131
00:09:23,010 --> 00:09:30,300
‫En als we op play drukken, kunnen we wachten op onze go-widget en dan boem, check dat maar eens.

132
00:09:30,300 --> 00:09:32,580
‫We hebben rookwolken.

133
00:09:32,580 --> 00:09:35,880
‫We hebben deeltjes geraakt die worden voortgebracht.

134
00:09:35,880 --> 00:09:42,630
‫Ik ga door en schiet op onze vijanden en we zullen zien dat ze worden uitgezet als

135
00:09:42,630 --> 00:09:44,820
‫we de vijanden ook raken.

136
00:09:45,450 --> 00:09:46,440
‫Perfect.

137
00:09:46,800 --> 00:09:50,430
‫Dus samenvattend, we hebben nu enkele hitdeeltjes voortgebracht.

138
00:09:50,430 --> 00:09:54,780
‫We hebben explosies als onze projectielen iets in de wereld raken.

139
00:09:54,780 --> 00:10:00,540
‫En de volgende stap is om een rookspoor te hebben dat achter het projectiel volgt terwijl het door de lucht

140
00:10:00,540 --> 00:10:00,960
‫vliegt.

141
00:10:00,960 --> 00:10:04,200
‫En daar zorgen we voor in de volgende video.

142
00:10:04,740 --> 00:10:05,700
‫Ik zie je snel.

