‫Ciao e Benvenuto.
‫In questa lezione, esamineremo come creare nuovi nodi nei blueprint da C++ in modo
‫che essenzialmente possiamo chiamare la funzionalità C++ dall'interno dei blueprint.
‫Immergiamoci e vediamo come è fatto ora così bene che posso usare i progetti per chiamare i nodi del progetto,
‫ma in realtà voglio attivare il nostro grabber da questo pezzo di progetto qui, non stampare alcune stringhe.
‫Allora come faccio a farlo?
‫Bene, fortunatamente, possiamo esporre abbastanza facilmente una funzione da una classe C++ in un progetto.
‫E il modo in cui lo facciamo è il seguente.
‫Quindi andremo a creare una nuova funzione pubblica.
‫Quindi andrò alla mia sezione pubblica appena sotto il componente tick.
‫E qui creerò una nuova funzione con un tipo di ritorno void chiamato release.
‫Quindi faremo la presa più avanti, ma per ora chiameremo solo una funzione di rilascio.
‫Come lo rendo disponibile in Blueprint?
‫Bene, devo farne una nuova funzione.
‫Quindi hai nuove proprietà per le variabili.
‫La tua funzione è in qualche modo l'equivalente per rendere una funzione sostanzialmente visibile nella terra del progetto.
‫Ma non lo fermiamo.
‫Proprio come con la nuova proprietà.
‫Dobbiamo apportare una modifica ovunque qui con la funzione U, dobbiamo renderla un blueprint richiamabile e questo, come
‫suggerisce il nome, significa che questa funzione ora diventa un nodo a cui il blueprint ha accesso.
‫Quindi andiamo a prendere un CP e creiamo un'implementazione per questo.
‫Sarà un tipo di ritorno nullo.
‫Sarà una presa dei due punti, rilascio dei due punti, nessun parametro e inseriremo un corpo della funzione,
‫che inserirò un nuovo accesso e darò il messaggio, sarò rilasciato grabber in questo modo .
‫E poi possiamo compilare e tornare nel nostro lettore BP, eliminerò il nodo della stringa di
‫stampa e trascinerò il rilascio qui e cercherò il rilascio come funzione qui.
‫Ora andiamo a dare un'occhiata in giro.
‫Al momento non viene visualizzato nulla perché devo farlo sul grabber.
‫Quindi prendiamo il componente grabber, trasciniamolo nel grafico degli eventi per creare una variabile grabber e
‫trasciniamolo via e cerchiamo il rilascio.
‫Ora, nota che non sta succedendo nulla nemmeno in questo caso.
‫E questo perché abbiamo usato il live coding.
‫E a volte le cose che vengono compilate in live coding non vengono visualizzate nell'editor.
‫Quello che dobbiamo fare è chiudere l'editor, chiudere la finestra di codifica leggera e
‫quindi nel codice di Visual Studio, premere il tasto MAIUSC B e compilare utilizzando l'editor di lettura della crittografia
‫quando lo sviluppo 64 compila, attendere che riesca e quindi riavviare l'editor dal file di progetto.
‫Ora, se riapriamo il nostro lettore BP e ora trascinando via il grabber, cerchiamo il rilascio.
‫Puoi vedere che ora c'è una nota chiamata rilascio.
‫E in effetti tutto ciò che farà sarà raffreddare il nostro C++.
‫Quindi puoi vedere come puoi davvero usare Blueprint e C++ in stretta collaborazione in questo modo esponendo
‫le cose C++ nel mondo Blueprint.
‫Ora collegherò la mia penna di esecuzione del rilascio al nodo di rilascio.
‫Andremo nel nostro dungeon e andremo a giocare.
‫E ora se dovessi afferrare e quindi rilasciare, non puoi vedere nulla perché è nel registro di output.
‫Quindi apriamo il registro di output e lo colleghiamo al layout, quindi premiamo di nuovo play.
‫E ora quando prendiamo e poi rilasciamo, puoi vedere che c'è un breve messaggio lì.
‫Scorre molto velocemente perché ogni segno di spunta che stiamo facendo colpisce la statua dello stato del gargoyle.
‫Ma poi se ti fermi e guardi indietro nel registro, puoi vedere che c'è scritto nonno rilasciato.
‫Quindi il nostro codice C++ viene eseguito.
‫Ok, quindi ora vorrei che spostassi il nostro codice di sweep in una funzione di cattura.
‫Quindi creerai una funzione di cattura e la chiamerai da Blueprint.
‫Puoi farlo allo stesso modo in cui ho appena eseguito la funzione di rilascio.
‫Ma quando crei il corpo della funzione grab invece di stampare qualsiasi cosa,
‫spostiamo quel codice completo e l'istruzione if e tutte le variabili di preparazione da TIC in modo che non lo stia facendo.
‫Ogni volta che ne prendiamo due, proprio quando chiamiamo quella funzione di cattura, quando premiamo il pulsante del mouse
‫verso il basso o premiamo un grilletto sul nostro controller, quindi ricompila e controlla i log per assicurarti che in effetti ciò avvenga
‫solo quando premi il pulsante , metti in pausa il video e prova.
‫Bene.
‫Ben tornato.
‫Quindi entriamo nel nostro C++ e fino al nostro file di intestazione.
‫Chiuderò la finestra di compilazione qui e sopra la versione, creerò una
‫nuova funzione richiamabile blueprints, che sarà void chiamata grab.
‫E lo implementeremo nel C++.
‫Quindi, ancora una volta, sarà un vuoto.
‫Prendi i due punti, i due punti afferrano le parentesi e poi le parentesi graffe.
‫E sposterò tutto questo codice dal componente TIC perché stiamo impostando i nostri vettori di inizio e tutto quel genere
‫di cose buone.
‫Scendiamo fino in fondo e taglialo e incollalo nella presa invece dove dovrebbe essere.
‫Va bene.
‫Ora vediamo se la codifica live porterà alla nuova funzione nel lettore BP.
‫Passiamo al lettore BP, cancelliamo la nostra stringa di stampa e trasciniamola.
‫Prendi un nodo che abbiamo e vediamo se riusciamo a trovare una funzione di cattura.
‫Ok, quindi questa volta la funzione di cattura era disponibile per noi.
‫È fantastico.
‫Ora colleghiamo il pin di esecuzione premuto, andiamo nel nostro dungeon, premiamo play e assicuriamoci di scorrere verso il basso fino alla
‫fine del registro di output.
‫Andando a fare clic con il pulsante destro del mouse nella mia finestra e dare un'occhiata in giro, quindi premerò il pulsante sinistro.
‫Dice che nessun attore colpisce e poi istantaneamente il rilascio del grabber.
‫Quindi ora l'attore colpisce e poi rilascio la chiave.
‫Nessun grabber di rilascio.
‫Ora ho dimenticato il mio gargoyle.
‫Date un'occhiata a questo.
‫Lo premo e dice: L'attore ha colpito la statua di Gogol e poi posso rilasciare il grabber.
‫Quindi ora abbiamo il giusto tipo di architettura in atto.
‫Per afferrare questo gargoyle.
‫Successivamente, dobbiamo occuparci della parte fisica di questa configurazione.
‫Ci vediamo alla prossima lezione.