‫Ons doel is dus om projectielen af te schieten en een explosie-effect te krijgen wanneer
‫het projectiel iets raakt, ook wanneer we de vijandelijke toren raken en wanneer de vijandelijke torenprojectielen ons raken.
‫Hallo en welkom terug.
‫Laten we nu ons sectieplan eens bekijken en zien hoe ver we zijn gekomen.
‫Nu weten we dat we een tank hebben gemaakt.
‫Het kan over de hele wereld bewegen.
‫We hebben een vijandelijke geschutsklasse gemaakt.
‫We hebben vuurfunctionaliteit en projectielen toegevoegd, samen met gezondheidsschade en vernietiging in onze game.
‫Nu hebben we voorwaarden voor winnen en verliezen en die tonen we met widgets in onze HUD.
‫Het laatste punt is om onze speciale effecten toe te voegen, wat betekent dat we wat rook achter
‫ons projectiel nodig hebben, evenals enkele explosies en geluiden.
‫En er zullen nog een paar andere dingen zijn die we toevoegen om ons spel op te fleuren en het er een beetje meer
‫gepolijst uit te laten zien.
‫In deze video gaan we enkele trefferdeeltjes behandelen.
‫Dit zijn speciale effecten voor als het projectiel iets raakt.
‫Dit gaat om iets dat een deeltjessysteem wordt genoemd.
‫Dus laten we teruggaan naar de editor en een kijkje nemen naar de deeltjessystemen die we in ons project hebben.
‫Dus ik ben hier in de editor.
‫Ik ga naar de map activa en effecten en hier hebben we drie effecten.
‫Dit worden deeltjessystemen genoemd.
‫Nu hebben we een treffereffect, een doodseffect en een projectielspoor.
‫Laten we nu doorgaan en dubbelklikken op p hit effect en je zult zien dat we hier een deeltjessysteemeditor
‫hebben.
‫En in dit kleine kijkvenster zullen we deze explosie keer op keer zien gebeuren.
‫Nu is dit deeltjessysteem gelukkig al voor ons gemaakt en het ziet eruit als een leuke
‫kleine explosie.
‫En we zouden deze explosie graag zien gebeuren zodra het projectiel iets raakt.
‫Dat is dus ons doel voor deze video.
‫Dus hier in de code van V wil ik teruggaan naar onze projectielklas.
‫Dus laten we naar projectiel H gaan en ik ga een variabele aan deze klasse toevoegen en dit
‫wordt een deeltjessysteem.
‫Dit kan een privévariabele zijn en het type wordt U.
‫Deeltjessysteem en het wordt een aanwijzer en we kunnen dit hitdeeltjes noemen.
‫Nu ga ik dit naar voren declareren en ga ik dit ook een nieuwe eigendom geven.
‫Dus laten we zeggen dat je eigendom bent en ik wil dit overal maken, zodat we dit kunnen instellen vanaf de
‫blauwdruk voor ons projectiel.
‫En nu ik toch bezig ben, ik ga dit een categorie geven en ik plaats dit in de
‫categorie gevechten, omdat het een beetje gerelateerd is aan onze andere gevechtsvariabelen.
‫Dit kan nu overal worden bewerkt, omdat we van plan zijn dit vanuit de blauwdruk in te stellen, zodat we
‫dit kunnen gaan compileren.
‫Laten we nu teruggaan naar de editor en ik sluit mijn andere blauwdrukken af en ga naar
‫onze acteursmap hier in blauwdrukken.
‫Acteurs, hier is onze B. P. projectiel.
‫Laten we dat openen en de volledige blauwdrukeditor openen.
‫Laten we nu eens in de details kijken.
‫Paneel.
‫Onthoud dat BP-projectiel zelf moet worden geselecteerd om deze algemene variabelen te zien.
‫En hier is onze gevechtssectie en we zien geraakte deeltjes.
‫Nu hebben we hier een vervolgkeuzelijst en kunnen we deeltjessystemen selecteren.
‫Aangezien deze variabele van het type partikelsysteem is, gaan we het hiteffect gebruiken voor onze hitdeeltjes.
‫Dus nu hebben we een variabele en de waarde ervan wordt hier in de projectielblauwdruk ingesteld.
‫Laten we dit dus compileren en opslaan.
‫De volgende stap is om dit deeltjessysteem daadwerkelijk te spawnen zodra we iets hebben geraakt, wat betekent dat een hit
‫de perfecte functie is om dit te doen, nu moeten we weten hoe we deeltjes kunnen spawnen en gameplay kunnen
‫gebruiken.
‫Statica heeft daar een handige functie voor.
‫Het wordt spawn-emitter op locatie genoemd en er staat dat het gespecificeerde effect op de gegeven locatie en rotatie
‫wordt afgespeeld.
‫Vuur en vergeet.
‫Dit is fijn omdat we ons geen zorgen hoeven te maken over het verwijderen of verwijderen ervan.
‫We ontslaan deze functie gewoon.
‫Het brengt het deeltjessysteem voort en zorgt ervoor dat het voor ons wordt opgeruimd, wat geweldig is.
‫Laten we nu eens kijken naar de syntaxis.
‫Er zijn een aantal invoerparameters, maar deze functie heeft een aantal overbelastingen.
‫Nu, aangezien er een aantal versies van deze functie zijn, gaan we naar de code van V en kijken
‫we naar die verschillende versies.
‫Nu ga ik projectiel CP openen en de on hit-functie bekijken.
‫Nu, hier beneden, ga ik je gameplay-statistieken spawn-emitter op locatie typen en zodra ik de openingshaakjes
‫typ, toont de pop-up me de invoerparameters die ik moet
‫doorgeven.
‫Maar we zien een van de drie, wat betekent dat er drie verschillende versies van deze functie zijn.
‫Drie overbelastingen.
‫Ik ga twee keer op de pijl-omlaag klikken om deze specifieke overbelasting te bekijken.
‫Nu is er een wereldcontextobject, een deeltjessysteem en een locatie nodig, en de overige invoerparameters.
‫Standaardwaarden, dus ze zijn optioneel.
‫Merk op dat de rotatieparameter is ingesteld op nul rotator.
‫Als we willen, kunnen we de rotatie van de zenders instellen op de rotatie van de acteur door de actieve rotatie in
‫te voeren.
‫Het is niet zo belangrijk, maar ik zou de zender met dezelfde rotatie als de acteur willen spawnen.
‫Dus ik zou graag actieve rotatie gebruiken en dat doorgeven.
‫Maar de rest van deze parameters zijn optioneel.
‫Dus omdat we weten dat we de spawn-zender op locatie moeten aanroepen om een deeltjessysteem te spelen, kunnen we dit
‫doen in de on hit-functie.
‫We weten dat de eerste parameter een wereldcontextobject is en we weten al hoe we daarmee om moeten gaan.
‫We weten dat er een deeltjessysteem voor nodig is en we hebben een deeltjessysteemvariabele die we kunnen invoeren.
‫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
‫locatie van de acteur en de rotatie van de acteur.
‫Dus aangezien je al deze informatie hebt, zou ik willen dat je de U-gameplay statica-functie
‫spawn emitter op locatie in de on hit-functie voor de projectielklasse gebruikt.
‫Dus dit doorgeven aan het wereldcontextobject, het deeltjessysteem zelf passeren, die nieuwe variabele voor hitdeeltjes
‫die we hebben gemaakt en de projectiellocatie gebruiken met behulp van get active location en gebruik de
‫projectielrotatie met behulp van get actor-rotatie.
‫Pauzeer de video en spawn de zender nu in de on hit-functie.
‫Oké.
‫Dus ik ga deze regel verwijderen die we hebben gebruikt om de functie-overbelasting voor deze functie te
‫bekijken.
‫En ik ga dit plaatsen net voordat we de acteur vernietigen.
‫Dus als je het bijvoorbeeld aan het einde van de functie plaatst, is dat goed.
‫De uitdaging werd voor u opengelaten.
‫Maar we gaan dit plaatsen net voordat we de acteur vernietigen, want als we de acteur
‫vernietigen, heeft het geen zin om daarna deeltjes te spawnen.
‫Dus we gaan dit doen voordat we de acteur vernietigen.
‫Dus we gaan zeggen dat je gameplay-statistieken spawn-emitter op locatie spawnen en eerst hebben we ons wereldcontext-object nodig,
‫dat dit gaat zijn.
‫Vervolgens hebben we onze hitdeeltjes nodig, gevolgd door onze acteurslocatie waarvoor we de locatie van de acteur
‫gaan gebruiken.
‫Vervolgens gaan we de rotatie doorgeven waarvoor we get actor-rotatie zullen gebruiken en nu spawnen we de
‫zender op de locatie.
‫Nu, één ding dat ik zou willen benadrukken is dat als mijn eigenaar een nul-aanwijzer is en we vroeg uit deze
‫functie terugkeren, het misschien een goed idee is om het projectiel daar te vernietigen.
‫Dus ik zou deze return-instructie willen verwijderen en deze if-instructie zijn eigen lichaam nog steeds teruggeven.
‫Maar net voordat we terugkeren, zouden we de acteur moeten vernietigen.
‫Dus ik ga hier vernietigen als check.
‫En zelfs als we niet slagen voor alle andere controles hier, het controleren van de andere acteur, willen we niet dat
‫een projectiel alleen maar rondhangt in de wereld.
‫Dus we moeten deze tweede oproep naar vernietiging buiten de if-controle verplaatsen.
‫Op die manier vernietigen we het projectiel wanneer het iets raakt, wat er ook gebeurt.
‫Op die manier hebben we om welke reden dan ook geen slepende projectielen.
‫Oké?
‫En hoewel we veilig zijn, zouden we moeten opmerken dat we hier trefferdeeltjes gebruiken, wat betekent dat
‫we moeten controleren of de trefferdeeltjes zijn ingesteld voordat we ze proberen te gebruiken.
‫Anders gebruiken we mogelijk een variabele voor hitdeeltjes die niet is ingesteld en mogen we geen null-pointers
‫gebruiken.
‫Dus we gaan hier een if-controle plaatsen om te zien of de geraakte deeltjes geldig zijn en als het geldig is, dan is
‫het veilig om de spawn emitter op locatie hier te bellen.
‫Oke.
‫Laten we doorgaan en dit nu compileren.
‫En met een succesvolle compilatie springen we terug in de editor en hier is het BP-projectiel.
‫We hebben onze hitdeeltjes ingesteld, dus zorg ervoor dat die zijn ingesteld voordat we dit uittesten.
‫Anders zien we niets.
‫En als we op play drukken, kunnen we wachten op onze go-widget en dan boem, check dat maar eens.
‫We hebben rookwolken.
‫We hebben deeltjes geraakt die worden voortgebracht.
‫Ik ga door en schiet op onze vijanden en we zullen zien dat ze worden uitgezet als
‫we de vijanden ook raken.
‫Perfect.
‫Dus samenvattend, we hebben nu enkele hitdeeltjes voortgebracht.
‫We hebben explosies als onze projectielen iets in de wereld raken.
‫En de volgende stap is om een rookspoor te hebben dat achter het projectiel volgt terwijl het door de lucht
‫vliegt.
‫En daar zorgen we voor in de volgende video.
‫Ik zie je snel.