‫Hallo en welkom.
‫In deze lezing gaan we ons gezondheidssysteem aansluiten op de animatieblauwdruk, zodat ik
‫dit personage kan fotograferen tot hij sterft.
‫Laten we erin duiken en kijken hoe dat werkt.
‫Je wilt dus dat deze boolean in de animatieblauwdrukken automatisch vanuit het spel wordt ingesteld.
‫En als we naar de gebeurtenisgrafiek gaan en kijken hoe dit momenteel werkt, andere eigenschappen zoals deze,
‫zoals snelheid krijgen, actief worden, transformeren, we gaan naar de pion en we doen er
‫een get-functie op elke keer dat we animatie willen updaten.
‫Dus we willen in dit model een beetje volgen waar we heen gaan om te zien of onze speler al
‫dan niet dood is.
‫Zodanig dat we wat functionaliteit moeten blootleggen, een aanroepbare functie uit onze C++.
‫Dus laten we naar de C++ gaan en kijken wat er is.
‫We hadden dus een publieke functie kunnen creëren, maar dat maakt het niet per se toegankelijk.
‫Om de toegankelijkheid te doen, hebben we een nieuwe functie nodig die het zichtbaar maakt voor blauwdrukken en op
‫rails header tool-systeem.
‫Maar we moeten een stap verder gaan dan het alleen als een nieuwe functie te hebben.
‫Dus we beginnen met de functie macro, maar we willen deze blauwdruk oproepbaar maken.
‫Dus dat is de optie die we kunnen gebruiken blauwdruk callable.
‫Er is echter nog een andere optie die de oproepbare blauwdruk overschrijft, in plaats daarvan impliceert dat deze oproepbaar is
‫voor de blauwdruk en dat deze puur blauwdruk is.
‫Nu zullen we in een oogwenk het verschil zien tussen blueprint pure en Blueprint callable.
‫Maar weet dat als je blueprint pure gebruikt, het hetzelfde doet als Blueprint Callable en nog wat.
‫Dus het doet een beetje meer dan blauwdruk oproepbaar.
‫En wat we dan willen is een functie die Boolean retourneert die zegt of dit personage al dan niet
‫dood is.
‫Dat is handig voor ons om te weten.
‫En tot slot willen we dat dit een concertlidfunctie wordt.
‫Waarom wil het een concert zijn?
‫Want als we deze functie aanroepen, verwachten we niet dat deze iets verandert aan de status van vraag je om karakter, dus
‫we kunnen gerust zeggen dat dit een concertfunctie zou moeten zijn.
‫En in feite gaan concert en blueprint pure vaak samen omdat blueprint pure betekent dat als we naar
‫een blauwdruk gaan, we een paar pure noten kunnen bekijken.
‫Deze hier krijgt een actieve transformatie.
‫Dat is een zuivere noot.
‫Get Velocity is een pure noot. Set-snelheid is geen pure noot.
‫Kun je zien wat deze met elkaar verbindt?
‫Hoe zit het met deze maakt dit niet puur en deze puur?
‫Over het algemeen is het het feit dat dit een executiepen, een pure knoop, er een is die
‫geen executiespeld heeft.
‫En het is meestal veilig om te zeggen dat iets geen uitvoeringsspeld heeft als het geen enkele invloed heeft op het
‫ding dat het alleen op het resultaat aanroept.
‫Dit betekent in wezen dat het niet uitmaakt hoe vaak we deze functie aanroepen, het zal altijd
‫hetzelfde resultaat opleveren.
‫Het zal altijd hetzelfde effect hebben op het programma.
‫Het is een pure functie.
‫Het verandert niets als het wordt gebeld.
‫Dus het is een beetje hetzelfde als const, hoewel het een beetje sterker is, want wat het
‫zegt is niet alleen dat het hier niets verandert aan het schietkarakter, maar het verandert niets globaal, in
‫welke staat, waar dan ook.
‫Punt.
‫De enige input, het enige effect dat het heeft, zit in de output die het produceert.
‫Daarom kiezen we ervoor om deze blauwdruk puur te maken.
‫Het maakt een executiespeld overbodig, wat het veel leuker maakt in blauwdrukken.
‫En het drukt ook gewoon uit dat we geen wijzigingen aanbrengen in de staat van ons spel wanneer we
‫deze functie aanroepen.
‫Dus laten we doorgaan en proberen hiervoor een implementatie te maken.
‫In feite ga ik de implementatie aan jou overlaten als een uitdaging, en
‫we gaan dit bespreken en aansluiten in een grafiek, sorry, een gebeurtenisgrafiek van de animatieblauwdruk.
‫Dus we gaan dit doen door hier een nieuwe set te plaatsen.
‫We willen de is dead boolean-variabele aan het einde instellen en we willen de pioneigenaar krijgen en we willen die casten
‫omdat het een schietkarakter moet zijn om dit een dode eigenschap te hebben.
‫Dus we willen het ook casten.
‫En in dit geval wil ik het casten naar het C++
‫shooter-personage omdat ik niet helemaal hoef te zeggen dat het absoluut een blauwdrukversie hiervan is, omdat deze functie feitelijk
‫op het C++-niveau bestaat.
‫Dus we gaan door en casten.
‫Als we erin slagen om te casten, gaan we de dode eigenschap instellen.
‫Laat me hier wat omleidingsknooppunten plaatsen om onze blauwdruk er net iets mooier uit te laten
‫zien.
‫En wat we dan willen doen, is deze shoots een karakterreferentie gebruiken nu we het naar
‫een shoots-personage hebben gecast waarvan we weten dat het dit dode eigendom zou moeten hebben, dus we zouden dat moeten kunnen doen.
‫Als je eenmaal hebt gecompileerd en het werkend hebt gekregen, kun je dit dode eigendom krijgen en het hier instellen.
‫Dus het is tijd voor jouw uitdaging om te berekenen of we dood zijn of niet.
‫Dus retourneer de juiste boolean uit onze is dode functie.
‫Dat is de eerste stap.
‫Misschien wilt u daarvoor een aantal ongelijkheden met een gezondheidsvariabele gebruiken en vervolgens onze variabele aansluiten.
‫De dood is dood veranderlijk.
‫In de animatieblauwdruk kwamen we daar net te kort voor.
‫We hadden eigenlijk gewoon een compilatie nodig om dat voor elkaar te krijgen.
‫Pauzeer de video en regel dat.
‫Oké.
‫Welkom terug.
‫Dus laten we eerst naar de code gaan.
‫Dus dit is vrij eenvoudig, ik ga een uitdrukking retourneren die een boolean retourneert.
‫Dus we willen zeggen, is de gezondheid kleiner dan of gelijk aan nul, in welk geval we inderdaad dood zijn?
‫Dat is ongeveer net zo eenvoudig als een expressiefunctie kan krijgen.
‫Dus laten we doorgaan en dat bouwen.
‫En als dat eenmaal is gecompileerd, kunnen we naar Unreal gaan en het aansluiten.
‫Dus het slepen van het personage als shooter, we zijn een knooppunt, we gaan hier een personagereferentie opnemen.
‫Dus we willen doen is dood geeft ons dit is een dode functie, je kunt zien dat het geen uitvoeringspin heeft omdat
‫het puur is.
‫Dan nemen we deze boolean daarvan af en koppelen deze aan onze is dode variabele.
‫En als we nu doorgaan en spelen, zouden we dat personage in de wereld eigenlijk moeten kunnen doden.
‫We zullen op hem schieten tot zijn gezondheid tot nul is gedaald.
‫En daar ga je.
‫De animatie heeft hem met succes gedood.