‫Ciao e Benvenuto.
‫In questa lezione, prenderemo il nostro pasticcio di progetti e lo organizzeremo ordinatamente in funzioni in modo da
‫poter leggere e capire facilmente cosa sta succedendo nel nostro grafico degli eventi del progetto.
‫Immergiamoci e vediamo come farlo.
‫Ora, se rimpiccioliamo il nostro grafico degli eventi, possiamo vedere che inizia a diventare molto rumoroso.
‫Posso anche vedere un paio di nodi che non sono collegati a nulla.
‫C'è un nodo get ammo, che eliminerò e un nodo set ammo, ma puoi vedere che sta diventando molto
‫rumoroso.
‫Sta diventando difficile capire cosa sta succedendo qui.
‫Ora, una soluzione tipica che le persone fanno è dire, beh, questo blocco di nodi qui riguarda lo spawn del
‫proiettile.
‫Quindi posso selezionare questi.
‫Posso premere il tasto C e metterà un blocco attorno a questo chiamato blocco di commenti.
‫E poi potrei digitare i proiettili di spawn e questo mi fa sapere cosa sta facendo quel blocco di codice.
‫Questo è sicuramente un modo per organizzare il tuo codice.
‫Tuttavia, secondo me, non è il modo migliore e abbiamo strumenti migliori per farlo chiamati funzioni.
‫Quindi quali sono tutte le funzioni?
‫Le funzioni eseguono blocchi di progetto e fanno in modo che i nostri giochi facciano cose.
‫Molti nodi forniti da Unreal sono in realtà già funzioni.
‫Quindi abbiamo incontrato questi.
‫Quando vai e ingrandisci dì sul nostro nodo proiettile attore di spawn, questa è una funzione.
‫Quando osserviamo l'aggiunta di impulso, questa è una funzione per quasi tutti questi nodi, anche cose come andare avanti vettore
‫attivo che non ha un pedale di esecuzione non è blu è anche una funzione
‫che puoi dire perché ha un piccolo simbolo f in alto a sinistra che sta per funzione, ma non siamo limitati alle
‫funzioni fornite da Unreal.
‫Possiamo anche creare le nostre funzioni ed è davvero facile da fare nei progetti.
‫Ci consentono di rimanere organizzati e ci consentono di riutilizzare blocchi di codice.
‫Quindi è meglio di un commento perché un commento devi copiarlo e incollarlo.
‫Mentre una funzione ci consente di condividere un blocco di codice tra più luoghi di utilizzo.
‫Quindi diamo un'occhiata a come possiamo trasformare qualcosa di simile in un blocco di codice.
‫Bene, prima di tutto possiamo eliminare il blocco dei commenti, perché non credo sia necessario.
‫Invece, selezionerò tutti i nodi da gets play a -- fino in fondo per aggiungere impulso, fare clic con il
‫tasto destro su di essi e selezionare Comprimi per funzionare.
‫E questo crea un nuovo blocco e sostituisce tutti quei nodi precedenti che erano lì prima.
‫Ora otterrò questa funzione, un nome che puoi vedere nel riquadro di sinistra.
‫Ha creato una nuova funzione nella sezione delle funzioni nel riquadro del mio progetto e l'ha
‫selezionata per farmi rinominare automaticamente perché dovremmo assolutamente, sicuramente rinominare queste funzioni
‫e lo chiamerò spawn proiettile.
‫E una buona denominazione è assolutamente vitale nella programmazione perché il codice riguarda essenzialmente la comunicazione.
‫Stiamo cercando di comunicare con noi stessi in modo da poter capire ciò che abbiamo scritto.
‫Stiamo cercando di comunicare con noi stessi in futuro.
‫Quando torniamo a questo progetto e ho dimenticato perché l'abbiamo scritto in un certo modo, e quando lavori
‫in team, stai cercando di comunicare anche con il resto della tua squadra.
‫Alcuni dicono che una buona metrica per la qualità del codice è ciò che diamine è al minuto.
‫Quindi se stai leggendo un pezzo di codice e stai dicendo, che diamine, 50 volte al minuto, è un codice
‫piuttosto brutto se lo stai leggendo e solo andando, che diamine, una o due volte al minuto, allora
‫probabilmente è un codice abbastanza buono e ne avrai sempre un po', che diavolo?
‫Quindi stiamo solo cercando di ridurre quel numero che funziona.
‫Fondamentalmente, tendiamo a nominare le funzioni come verbi.
‫Ci sono alcune eccezioni a questa regola di cui parleremo più avanti, ma per lo più le funzioni sono cose che
‫stanno facendo qualcosa.
‫Quindi usiamo fare parole e se non sei sicuro di come nominare questa funzione, se stai lavorando in un team, potresti
‫semplicemente parlare con qualcun altro e chiedere loro come pensano che dovresti chiamarla e che tipo
‫di cose avere un senso per loro.
‫Spesso ti accorgi di essere così radicato in un problema che non riesci a pensare a come parlarne.
‫Quindi potresti chiederti, beh, dove è finito tutto il mio codice quando ho creato questa funzione di spawn del
‫proiettile?
‫Bene, puoi tornare a quei dettagli su come questa funzione è effettivamente implementata facendo doppio clic su di essa nel grafico dell'evento o
‫facendo clic su di essa nella scheda I miei progetti o facendo doppio clic su di essa nella scheda
‫I miei progetti.
‫E puoi vedere che tutti i nostri nodi sono ancora residenti qui proprio ora che si trovano in una scheda
‫separata in modo da poter tornare alla scheda del grafico degli eventi o puoi immergerti nella scheda Spawn proiettile che
‫mostra solo quella funzione.
‫E puoi vedere che c'è un nuovo nodo qui, questo piccolo nodo viola, che è il punto di ingresso della nostra
‫funzione.
‫Questo dice che questo è ciò che dovremmo fare all'avvio della funzione.
‫È solo un punto di ingresso.
‫E ogni volta che viene chiamato, quel nodo attiverà e attiverà tutti gli altri nodi all'interno della
‫nostra funzione.
‫Quindi tornando al grafico degli eventi e.
‫Rimpicciolire, magari unendo un po' gli anodi ora che abbiamo reso il nostro grafico dei nodi molto più piccolo e più
‫facile da leggere.
‫Penso che ci siano un altro paio di candidati qui per noi per estrarre funzioni e sostituire le cose.
‫Uno di questi sarebbe dove stiamo stampando le munizioni.
‫Quindi, in questo caso, stampare le munizioni è qualcosa che facciamo in due punti.
‫Lo facciamo all'inizio del gioco e lo facciamo nel proiettile di spawn.
‫E poi l'altro posto, l'altra cosa, un pezzo di funzionalità che potremmo estrarre in una
‫funzione sarebbe dove stiamo diminuendo le munizioni che potrebbero essere invece inserite in una funzione di diminuzione delle munizioni.
‫Quindi, appena prima di lanciarti la sfida, vorrei eliminare il nodo di conversione e stampare il nodo della
‫stringa dopo il proiettile di spawn perché questo complicherà le cose.
‫Vorrei copiare la funzionalità dall'alto in modo che entrambi appaiano esattamente uguali.
‫Quindi, se copiamo i tre nodi da Begin Play e li incolliamo in basso e colleghiamo i pin di esecuzione, allora
‫puoi vedere che abbiamo esattamente lo stesso set di nodi, abbiamo la stessa funzionalità tra
‫i due e non c'è confusione quando veniamo ad estrarlo in funzione.
‫Quindi vorrei sfidarti a creare altre funzioni.
‫Il primo che consiglierei di fare è diminuire le munizioni.
‫Quindi prendere i tre nodi coinvolti nella diminuzione delle munizioni, estrarli in una funzione e dare loro
‫un nome.
‫E poi il secondo è stampare munizioni.
‫Quindi estrarrai la funzionalità di ottenere, convertire e stampare le munizioni
‫in un'unica funzione.
‫E poiché abbiamo due siti in cui stiamo stampando munizioni, vuoi eliminarne uno e inserire invece
‫la funzione, cosa che puoi fare trascinando dal riquadro del mio progetto.
‫E poi finalmente abbiamo un paio di messaggi di benvenuto, output di nodi di messaggi di benvenuto.
‫Puoi anche estrarli in una funzione di stampa dei messaggi di benvenuto.
‫Metti in pausa il video e prova.
‫Bene.
‫Ben tornato.
‫Quindi estrarremo prima le nostre munizioni ridotte.
‫Quindi ci sono tre nodi coinvolti che faranno clic con il pulsante destro del mouse per comprimere la funzione.
‫Quindi lo chiameremo diminuzione delle munizioni e questo è abbastanza semplice.
‫Quindi genera proiettili per diminuire le munizioni e quindi stiamo stampando le munizioni.
‫Quindi prendiamo i tre nodi, la stringa get convert e print e faremo clic con il pulsante destro del
‫mouse per ridurre la funzione e chiamare questo print ammo.
‫Ora, come ho detto, abbiamo ripetuto questa funzionalità in due punti, quindi elimineremo dove lo fa e
‫inizieremo la piastra e trascineremo semplicemente le munizioni di stampa dal nostro elenco di funzioni e collegheremo i pin di esecuzione in
‫modo che funzioni dopo il nostro stringa di stampa.
‫Il che mi porta all'ultima funzione che voglio creare, che abbiamo detto chiamerà stampa messaggi di benvenuto.
‫Quindi selezionerò le due stringhe di stampa.
‫Devo iniziare a giocare a collasso per funzionare e chiamarlo stampa messaggi di benvenuto.
‫E questo nodo possiamo solo ora riorganizzare tutti i nostri nodi per rendere molto più facile leggere tutto questo in un'unica
‫schermata intera.
‫Puoi vedere che ora è molto più facile capire la funzionalità del nostro gioco perché si adatta
‫tutto su uno schermo ed è ben portato a un livello simile di astrazione e comprensione.
‫E questo è ciò che chiameremmo codice autodocumentante, perché è un codice che non ha bisogno di commenti o
‫documentazione per spiegare cosa fa.
‫Si legge come l'inglese.
‫Roba fantastica.
‫Ci vediamo alla prossima lezione.