‫Hallo en welkom.
‫In deze lezing gaan we ervoor zorgen dat onze triggercomponenten opnieuw worden afgedrukt wanneer deze naar een lege ruimte gaat
‫en wanneer we de waterspuwer erin plaatsen, wordt deze ontgrendeld.
‫En als ik hem er weer uithaal, zit hij weer op slot.
‫En de manier waarop we dit gaan doen is door onze functionaliteit uit te trekken om te ontdekken of
‫we een acceptabele actor hebben in zijn eigen afzonderlijke functie.
‫En ik ga leren over vroege terugkeer binnen vier lussen.
‫Om dat te doen, duiken we erin.
‫Dus dit stuk code dat we hebben en de technische component begint voor mij al als een functie te
‫voelen.
‫In wezen is het een functie die de acceptabele actor te pakken krijgt, als we die hebben, dus we
‫kunnen doorgaan naar onze triggercomponent punt H en onder het privégedeelte een dergelijke functie maken.
‫Wat moet het retourtype zijn?
‫Welnu, ik denk dat het een A-acteuraanwijzer zou moeten zijn, die altijd een nulaanwijzer kan zijn als er geen acceptabele acteur
‫is.
‫Dus we kunnen dit krijgen acceptabele actor lege haakjes noemen.
‫We hoeven het niets te geven.
‫En omdat het onze functie niet verandert, kunnen we het constant maken.
‫Laten we doorgaan en dit in dit heap-bestand implementeren door naar een streepje te gaan.
‫Het geeft het een je activeert de dubbele punt van het onderdeel en vervangt het puntkomma door accolades.
‫En dan is de code die we willen eigenlijk de inhoud van de tick-component, behalve wat we niet willen doen,
‫is dat gewoon loggen.
‫We hebben hier een acteur vrijgespeeld.
‫Wat we willen doen, is dat in het geval dat we deze acteur hebben gevonden, we hem in wezen willen teruggeven.
‫Er zijn dus een aantal manieren waarop we dit kunnen doen.
‫We zouden aan het begin van onze functie kunnen zeggen dat er een actor-pointer is, die de terugkerende actor
‫zal zijn, en standaard stellen we dit in op null-pointer.
‫Er is dus geen acteur die we gaan terugsturen.
‫Maar als we onze for-lus doorlopen en uiteindelijk een acteur vinden die de acceptabele
‫tag heeft, dan kunnen we zeggen: Hé, de terugkerende acteur zou eigenlijk naar de actor-aanwijzer moeten wijzen die we hier in de array
‫hebben gevonden.
‫En dan aan het einde van de for-lus, nadat de volledige lus is afgelopen, hebben we alle acteurs doorgenomen.
‫We kunnen doorgaan en de return actor-variabele retourneren, want dat is het juiste type.
‫Dat is goed.
‫Maar het vereist dat we een variabele maken en het vereist ook dat we de hele volledige lus doorlopen,
‫zelfs als we al een acceptabele actor hebben gevonden.
‫Dus een betere manier om dit te doen, is door een vroege terugkeer te gebruiken.
‫En we hebben dit soort dingen eerder gezien in Ik pak een CP waar we dit hebben gedaan.
‫Als de physics-handles gelijk zijn aan een kleine aanwijzer, keren we terug en hoeft de rest van het onderdeel niet
‫te worden uitgevoerd.
‫We kunnen dezelfde soort efficiëntie ook gebruiken voor sprongen.
‫Dus wat ik ga doen is als we de acceptabele acteur vinden, we gaan gewoon een terugkerende acteur doen.
‫We geven letterlijk de aanwijzer terug die we zojuist in deze for-lus hebben gevonden en de rest van de for-lus
‫hoeft niet te worden uitgevoerd.
‫Als we echter doorgaan naar het einde van de for-lus en we hebben niets gevonden, we hebben niets geretourneerd,
‫de return zou de for-lus stoppen en de functie verlaten.
‫Maar als we aan het einde komen, moeten we standaard iets retourneren en dit is waar we gewoon de
‫nulaanwijzer kunnen retourneren.
‫Dit is dus de standaardwaarde.
‫Het betekent dat we de hele for-lus hebben doorlopen.
‫We hebben gezien dat er geen acceptabele acteur is.
‫Geen van de acteurs overlapt ons.
‫Met het juiste label.
‫Dus we retourneren null pointer.
‫Dus nu betekent dat dat ik deze overbodige return actor-variabele heb die ik kan gaan en verwijderen.
‫En dit leest echt heel netjes.
‫We gaan door, we krijgen de overlappende acteurs, we doen er een volledige lus over.
‫Als elke acteur die we testen, heeft hij dan de tag 'acceptabel'?
‫Als dat zo is, stoppen we daar.
‫Die geven we terug.
‫Als geen van hen het heeft, retourneren we een null-pointer.
‫Dus laten we je uitdagen om in te loggen als we de acteur vinden.
‫Roep dus onze functie aan in uw vinkcomponent.
‫Controleer of de aanwijzer nul is en log in beide gevallen in, zowel of we een actor hebben als dat we
‫geen F- en een else-statement gebruiken.
‫Pauzeer de video en probeer het.
‫Oké.
‫Welkom terug.
‫Laten we dus teruggaan naar onze technische componenten.
‫Wat we gaan doen, is een variabele maken, een actor-aanwijzer, die de actor zal zijn, wat
‫gelijk is aan een acceptabele actor die we gaan doen.
‫Als de acteur niet gelijk is aan de null-aanwijzer, dan gaan we in de hoofdtekst hiervan een dialoog ontgrendelen en dan in de
‫andere log je deze keer opnieuw, want dat is het gedrag dat ik wil dat onze trigger-component en
‫samen verplaatsen is als je de waterspuwer erin hebt, wordt hij ontgrendeld.
‫Het gaat de verhuizer gebruiken en het wordt opnieuw vergrendeld als we het selectievakje bij verplaatsen in feite uitschakelen
‫als we de waterspuwer verwijderen, dus laten we dat compileren.
‫Dus laten we doorgaan en op play drukken.
‫Je kunt zien dat hij weer op slot zit omdat we daar geen waterspuwer hebben.
‫Pak de gargoyle op en breng hem naar je toe en daar ga je.
‫Het is nu aan het ontgrendelen, haal het eruit en het is weer aan het ontgrendelen en ziet er perfect uit.
‫Als ik naar binnen stap, gebeurt er niets.
‫Het is gewoon weer op slot.
‫We hebben dus met succes kunnen achterhalen of we iets in onze triggercomponent hebben of
‫niet.
‫Nu moeten we er gewoon iets van maken.
‫En dat zal het onderwerp zijn van de volgende lezing.
‫Ik zal dat zien.