‫Hé, welkom terug.
‫In de laatste video hebben we een paar nieuwe eigenschapspecificaties geleerd waarmee we onze C++-variabelen op bepaalde manieren
‫kunnen weergeven in het detailvenster in de blauwdrukken.
‫In deze video gaan we wat meer specificaties leren waarmee we meer controle hebben over de toegang
‫tot die variabelen.
‫In het detailvenster gaan we het ook hebben over hoe we toegang kunnen verlenen, lezen of
‫schrijven in de feitelijke gebeurtenisgrafiek voor een bepaalde C++-variabele.
‫Dus laten we er meteen in duiken.
‫Oké.
‫Dus ik ben hier terug in VS-code en hier zijn de variabelen die we in de laatste video hebben gemaakt.
‫Nu is hier mijn snelheidsvariabele.
‫Dit was voor de uitdaging.
‫Je hebt waarschijnlijk een andere variabele gemaakt, wat helemaal goed is, dus bewaar die variabele daar.
‫In deze video gaan we er nog wat mee doen.
‫Nu hebben we geleerd dat we een variabele overal zichtbaar kunnen maken, en als we zeggen waar dan ook,
‫bedoelen we in het detailvenster, ofwel op een instantie of op de standaardblauwdruk.
‫We hebben gezien dat we het ook overal kunnen laten bewerken, en wanneer we alleen zichtbare instantie gebruiken, is het alleen zichtbaar
‫op een instantie.
‫Je kunt het niet eens zien op de standaardblauwdruk en je kunt het in ieder geval niet bewerken omdat het grijs
‫is.
‫Dit stelt ons dus in staat om onze variabele alleen zichtbaar te maken op de instantie.
‫Maar wat als we willen dat het alleen zichtbaar is op de standaardblauwdruk?
‫Nou, daar zijn ook specificaties voor.
‫Laten we er nog een maken in 32 en laten we dit alleen zichtbare standaardwaarden int noemen.
‫En we kunnen dit initialiseren naar een waarde.
‫Ik geef het vijf en we geven dit ook een U-eigendom.
‫En de specificeren zijn om dit alleen zichtbaar te maken op de standaardinstellingen.
‫Je kunt waarschijnlijk wel raden wat het is.
‫Het zijn alleen zichtbare standaardinstellingen.
‫Dus ik ga dit compileren en hier in de editor ga ik BP Pond Tank weer openen.
‫En met BP Pond Tank zelf geselecteerd, staan al onze variabelen hier bovenaan, dus ik ga er
‫niet naar zoeken.
‫Maar hier zijn onze zichtbare standaardwaarden alleen int en het heeft de waarde vijf en natuurlijk is het nu grijs weergegeven, zoals de naam
‫al doet vermoeden, het is alleen zichtbaar op de standaard.
‫Dus als ik de wereld in ga en hier een van de instanties van BP-vijvertank selecteer, zijn er geen zichtbare standaardwaarden alleen
‫int het is niet zichtbaar op de instantie, alleen op de standaard.
‫Dus dat is nu logisch.
‫Laten we teruggaan naar VS-code en we hebben nog een paar specificaties om over te leren.
‫Nu hebben we gezien dat we overal kunnen bewerken en dat we met onze zichtbare specificaties alleen instantie
‫of alleen standaard kunnen kiezen.
‫Dus zoals je waarschijnlijk al geraden hebt, kunnen we alleen de instantie bewerken of alleen de standaardinstellingen als we dat willen.
‫Dus laten we er nog een paar maken in 30 tweeën.
‫Ik ga er een maken genaamd edit defaults only int en initialiseer dat naar een waarde zeg negen
‫en dan nog een int 32 genaamd edit instance only int.
‫En ik geef dit een waarde van 14.
‫Dus we willen dat alleen standaardinstellingen int bewerkbaar zijn op de standaardinstellingen en alleen de instantie bewerken en alleen op
‫de instantie kunnen worden bewerkt.
‫Nu zijn de namen van deze specificeerders vrij consistent, dus ik zou graag willen dat je even raadt wat de
‫specificeerders zouden zijn voor deze twee toegangsniveaus.
‫Ga je gang en doe gewoon een snelle kleine mini-uitdaging.
‫Pauzeer de video en vul deze in, kijk of je gelijk hebt.
‫Oké, dit worden je eigenschappen en de standaardinstellingen.
‫Alleen het einde zal je waarschijnlijk al raden.
‫Alleen standaardinstellingen bewerken en alleen voor het bewerken van de instantie int. Ik geef dit een u-eigenschapsmacro en dit
‫is alleen een bewerkingsinstantie.
‫Het is dus vrij intuïtief.
‫Laten we doorgaan en deze compileren en terug hier in de editor met BP -- tank open hier zijn alleen onze
‫standaardinstellingen voor bewerken. We zien niet alleen de bewerkingsinstantie en we hadden niet verwacht dat het op negen staat, hier
‫kunnen we het wijzigen en als we gaan de wereld in met een van onze geselecteerde instanties, we kunnen alleen instantie bewerken
‫int zien en dat is natuurlijk ook bewerkbaar.
‫Daarom hebben we hier nu drie nieuwe specificaties aan onze grafiek toegevoegd.
‫We hebben alleen zichtbare standaardwaarden, die alleen in de standaardkolom en in de alleen-lezen rij staan.
‫En dan hebben we alleen de standaardinstellingen bewerken en alleen de instantie in hun respectieve rijen bewerken.
‫Dus we vullen deze grafiek vrij snel, maar je zult merken dat er een paar lege plekken
‫zijn daar aan de rechterkant en in de kolom van de gebeurtenisgrafiek.
‫Dus laten we het hier nu even over hebben.
‫Ik ben hier in BP Pond Tank, en we hebben al deze variabelen die we hebben blootgesteld aan de details, panelen,
‫afhankelijk van hun specificaties.
‫Je kunt ze hier of op een instantie bekijken.
‫Maar wat als ik hier met de rechtermuisknop klik in de gebeurtenisgrafiek?
‫De gebeurtenisgrafiek is een andere plaats waar we toegang hebben tot variabelen en deze mogelijk kunnen wijzigen.
‫Dus als ik ergens edit typ, zie ik de edit nergens.
‫INT wordt het niet blootgesteld aan de gebeurtenisgrafiek.
‫Daar hebben we geen toegang toe.
‫Er zijn nog andere specificeerders waarmee we dingen hier in de gebeurtenisgrafiek kunnen weergeven en die kunnen
‫werken in combinatie met de specificeerders die de toegankelijkheid van het detailvenster regelen.
‫En ik zou graag een van deze variabelen blootstellen aan de gebeurtenisgrafiek.
‫Nu, ik zou elk van deze kunnen kiezen, maar ik ga dit overal zichtbaar kiezen.
‫INT Nu de U.
‫Eigenschappenmacro kan meerdere invoer hebben, dus we zijn overal zichtbaar.
‫Dat kunnen we nog hebben.
‫Ik ga een komma plaatsen en ik zou er nog een willen toevoegen die is gespecificeerd om dit
‫overal zichtbaar te maken eindblootstelling aan de gebeurtenisgrafiek.
‫Dus wat ik ga gebruiken is blauwdruk lezen, schrijven, blauwdruk lezen.
‫Schrijven heeft te maken met de gebeurtenisgrafiek.
‫Het heeft niets te maken met controle over het detailvenster.
‫Daar is dit overal zichtbaar voor.
‫Dus Blueprint Rewrite heeft, zoals de naam al doet vermoeden, leestoegang en schrijftoegang.
‫Dus laten we eens kijken hoe dat eruit ziet.
‫Laten we dit compileren en ik ben hier terug in de editor in de gebeurtenisgrafiek als ik met de rechtermuisknop klik en
‫ergens zichtbaar typ.
‫We zullen zien dat twee verschillende opties overal zichtbaar worden int en overal zichtbaar worden ingesteld.
‫INT Als je selecteert, overal zichtbaar worden.
‫INT We krijgen een knooppunt en dit is net als elk ander blauwdrukknooppunt, het vertegenwoordigt die C++-variabele en als we hier
‫vanaf slepen, hebben we toegang tot die waarde om er iets mee te doen.
‫Nu ga ik naar buiten scrollen en je zult zien dat we deze grijze knooppunten hebben, acteur begint, overlapt
‫en gebeurtenisvinkje en Begin Play wordt aan het begin van het spel genoemd, zoals je weet.
‫Dus we kunnen hier iets doen.
‫Ik zou graag een print string node gebruiken en als ik de print string weg sleep en typ, dan is het hier.
‫Het is een blauwdrukfunctieknooppunt en er is een invoer voor nodig die in string wordt genoemd.
‫Als ik er nu overheen zweef, staat er in tekenreeks en dan tekenreeks daaronder.
‫Dat is het type dat dit knooppunt accepteert als invoerparameter.
‫En we weten dat onze zichtbare int overal een int 32 is, geen string.
‫Maar als je vanuit de uitvoer van deze notitie klikt en het hier in de invoer sleept en plakt voordat je de
‫linkermuisknop loslaat, zie je een pop-up die zegt: convert integer to string en als je loslaat, krijg je dit
‫handige conversieknooppunt dat converteert van een geheel getal naar het tekenreekstype, wat erg handig voor ons is omdat we niet
‫hoeven uit te zoeken hoe we een geheel getal naar een tekenreeks moeten converteren.
‫Bij ons gaat het gewoon automatisch.
‫Als ik nu op play druk, wordt de waarde 12 drie keer afgedrukt en duurt het maar een paar seconden.
‫Dat is het gedrag van print string.
‫De reden dat we het drie keer zien, is omdat ik hier in de wereld drie verschillende exemplaren van een
‫BP-vijvertank heb.
‫Afhankelijk van hoeveel je de wereld in hebt gesleept, zul je er zoveel zien.
‫Omdat voor elk van deze individuele gevallen het begin van het spel aan het begin van het spel wordt
‫geroepen.
‫Dus om verwarring te voorkomen, ga ik gewoon mijn andere twee verwijderen en een enkel exemplaar van Beep Pond
‫Tank hier in de wereld achterlaten.
‫Dus ik heb er maar één en als ik weer op play druk, zie ik 12 maar één keer op het scherm afgedrukt.
‫Dus dat is leestoegang tot overal zichtbaar int maar we zagen dat we ook schrijftoegang hebben.
‫Dat betekent dat we de waarde van hier in de gebeurtenisgrafiek kunnen instellen.
‫Dus als ik met de rechtermuisknop klik en overal int zichtbaar typ, kan ik overal zichtbaar int selecteren en ik heb een
‫setterknooppunt dat een invoer nodig heeft die we kunnen doorgeven aan de waarde van een ander knooppunt of we kunnen
‫dit kleine tekstvak en harde code nemen van waarde, zeg 66.
‫En nu, zodra de uitvoeringsstroom vanaf het begin van het spel dit knooppunt bereikt,
‫gaat het setterknooppunt overal naar zichtbaar schrijven en stelt het zijn waarde in op 66.
‫En deze kunnen we natuurlijk weer uitprinten.
‫Dus ik ga print string gebruiken.
‫En voor de waarde die in print string wordt doorgegeven, wil ik graag de waarde van zichtbaar overal int.
‫Nu kan ik dit op twee manieren doen.
‫De setter heeft een retourknooppunt, dus nadat het de waarde heeft ingesteld, retourneert het die waarde en kunnen we het gebruiken zodat we
‫het rechtstreeks kunnen aansluiten om de tekenreeks af te drukken.
‫De andere manier is om gewoon met de rechtermuisknop te klikken en overal zichtbaar te worden in het gebruik van dat knooppunt
‫en we kunnen de waarde van dit knooppunt rechtstreeks aansluiten op de printstring die precies hetzelfde zou doen.
‫Dat heb ik dus niet nodig.
‫Ik ga dat knooppunt verwijderen.
‫En wat ik nu verwacht te zien wanneer ik het spel speel, is om eerst de waarde van zichtbaar overal int af
‫te drukken, die begint bij 12 en dan nadat ik de waarde op 66 heb ingesteld, zou ik de waarde 66 moeten zien afdrukken naar
‫het scherm.
‫Dus laten we op play drukken en we zien 12 en 66.
‫Nu zien ze eruit alsof ze in omgekeerde volgorde staan.
‫Dat komt omdat print string nieuwere berichten bovenaan toevoegt.
‫Dus dat is normaal gedrag.
‫Oke geweldig.
‫We hebben dus gezien dat we nu een variabele blauwdruk kunnen laten lezen.
‫We kunnen ook bepalen of we dit kunnen instellen vanuit de gebeurtenisgrafiek.
‫Laten we dus een andere variabele blootleggen, zodat we deze uit blauwdrukken kunnen halen, maar deze niet hier kunnen instellen om ergens te bewerken.
‫INT Ik ga hier nu een komma aan toevoegen en een gespecificeerd aan toevoegen om toegang te krijgen in de gebeurtenisgrafiek,
‫maar ik kan het niet instellen of ernaar schrijven.
‫Het opgegeven uur is alleen-lezen in de blauwdruk, dus bewerken waar dan ook int is nu alleen-lezen in de blauwdruk.
‫Het is nog steeds bewerkbaar in het detailvenster, zowel in de standaard als op instanties, maar in de gebeurtenisgrafiek is
‫het alleen-lezen.
‫Dus laten we doorgaan en dit compileren en terug hier in de editor, ik ga met de rechtermuisknop in
‫de gebeurtenisgrafiek klikken en typ ergens bewerken en bekijk het.
‫We hebben het einde van de bewerking overal, maar we hebben geen set-edit ergens int omdat het een blauwdruk is die alleen kan
‫worden gelezen, we kunnen er niet naar schrijven.
‫Dus ik ga het selecteren.
‫Hier kun je overal bewerken.
‫INT En als ik zou willen, zou ik een printstring-knooppunt kunnen gebruiken om de waarde ervan te zien.
‫Dat hoeft niet.
‫We weten al hoe we dat moeten doen.
‫Ik laat alleen zien dat we niet naar deze variabele kunnen schrijven.
‫Oké, dus ik ga door en markeer deze knooppunten en verwijder ze.
‫Dus onze grafiek is nu ingevuld.
‫We hebben geleerd dat we onze variabelen alleen zichtbaar kunnen maken voor de standaardinstellingen en dat we ze alleen bewerkbaar kunnen
‫maken voor de standaardinstellingen of alleen voor de instantie.
‫We hebben dus echt volledige controle vanaf de C++-kant.
‫Nu zagen we ook dat we deze variabelen kunnen blootstellen aan de gebeurtenisgrafiek en ze alleen-lezen of
‫juist-lezen kunnen maken met behulp van deze blauwdruk alleen-lezen, blauwdruk lees-schrijfspecificaties.
‫Dus nu heb je een uitdaging.
‫In de laatste lezing hebben we een variabele gemaakt.
‫Ik maakte een vlotter en noemde het snelheid.
‫Nu ga je die variabele nemen.
‫U maakt het in de laatste sectie en beheert de toegang in de gebeurtenisgrafiek.
‫Stel het dus bloot aan de gebeurtenisgrafiek met behulp van een van de nieuwe specificaties die je hebt
‫geleerd, en dan ga je de lees-schrijftoegang hiervoor testen.
‫Gebruik een print string node zodat je de waarde ervan kunt zien en als je het verandert, bewijs dan voor jezelf dat je
‫het hebt veranderd.
‫Dus als je je variabele blauwdruk goed leest, probeer het dan te veranderen met een set node en gebruik dan een print
‫string node om de waarde ervan te zien met event begin play.
‫Als u de blauwdruk alleen-lezen hebt gemaakt, kunt u eenvoudig de waarde ophalen en de waarde afdrukken met behulp van
‫printstring.
‫Voeg dus de juiste specificatie toe aan uw vrije variabele en gebruik print string om de toegang in de gebeurtenisgrafiek te
‫testen.
‫Pauzeer de video en probeer dit eens.
‫Oké.
‫Dus ik ga hier naar beneden scrollen naar mijn snelheidsvariabele en mijn snelheidsvariabele kan overal worden bewerkt en ik zou graag willen
‫dat deze blauwdruk wordt gelezen.
‫Juist, dus ik kan het veranderen vanuit de gebeurtenisgrafiek.
‫Dus ik ga blauwdruk toevoegen, lezen, schrijven en gewoon compileren.
‫Dus terug in de BP-vijvertank, als ik nu snelheid typ, zie ik de getter en setter hiervoor.
‫Dus ik ga de ingestelde snelheid gebruiken.
‫Ik ga de waarde ervan instellen vanaf Begin Play.
‫Dus laten we dit aansluiten.
‫En voor de waarde ga ik 900 invoeren en van de ingestelde notitie als ik wegsleep, kan ik print string typen.
‫Nu ga ik klikken en slepen van het uitvoerknooppunt, sluit het aan op een touwtje.
‫Dus als ik op play druk, is er 900, merk op dat er 900 staat. 0.
‫Dat komt omdat dit een vlotter is.
‫En dus geeft het me de hoffelijkheid om die eerste decimaalteken te tonen.
‫Dus dat is een aardige ingebouwde functie hier.
‫Het toont me één cijfer rechts van de komma voor mijn snelheidsvariabele.
‫Samenvattend hebben we dus wat meer specificaties voor de nieuwe eigenschapmacro geleerd.
‫We hebben alleen zichtbare standaardwaarden geleerd, alleen standaardinstellingen bewerkt en alleen instantie bewerkt.
‫En we hebben ook geleerd hoe we de lees-schrijftoegang in de gebeurtenisgrafiek kunnen regelen met Blueprint, read,
‫write en Blueprint Read.
‫Alleen de C++-programmeur heeft veel controle over wat wordt blootgelegd en wat er in de blauwdruk kan worden gewijzigd en
‫waar we deze in dit gedeelte van de cursus zullen gebruiken.
‫En je zult ze je hele carrière als onwerkelijke engine-ontwikkelaar blijven gebruiken.
‫Ik zie je in de volgende lezing.