‫Ciao e Benvenuto.
‫In questa lezione, abbiamo un A. IO. che ci segue in giro per il mondo.
‫Andremo a indagare quando mi perderà di vista.
‫Quindi è abbastanza difficile da perdere.
‫Ma se vado via troppe curve, non sarà in grado di tenere il passo e
‫alla fine perderà interesse e tornerà al punto di partenza laggiù.
‫Questo è ciò che implementeremo in questa lezione completando il nostro compito sull'albero del comportamento.
‫Entriamo e vediamo come è fatto.
‫Quindi vogliamo che il nostro compito venga eseguito, per fare effettivamente qualcosa.
‫E in particolare volevamo essere in grado di cancellare quella Blackboard Valley, fare quello che dice sulla latta.
‫Quindi come possiamo farlo?
‫Bene, per questo, dobbiamo passare alla nostra classe base e dare un'occhiata a ciò che è implementato lì.
‫In effetti, dobbiamo salire di un livello più in alto, che, come puoi vedere
‫dall'eredità dell'ottimo compito Blackboard Base.
‫Oltre a ciò, abbiamo il nodo attività UBC.
‫Quindi usiamo F12 per passare all'implementazione lì.
‫E se scorri fino alla parte superiore del nodo dell'attività della barra dot h head of file, puoi vedere che ci sono le informazioni
‫su questa classe.
‫E la cosa più importante è che queste sono le funzioni virtuali che è più probabile
‫che vorremo implementare.
‫Quindi il primo è eseguire attività.
‫Viene chiamato quando l'attività inizia a essere eseguita.
‫Abbiamo quindi un'attività sulla scheda, ovvero quando viene deciso che dobbiamo interrompere l'esecuzione, ad esempio, perché
‫una condizione è diventata falsa e abbiamo impostato la segnalazione.
‫Quindi interrompe questo compito.
‫L'attività di spunta si verifica tutte le volte che l'attività è in esecuzione, ma non il primo segno di spunta.
‫Quindi la prima attività chiamerà l'attività di esecuzione, in seguito continuerà a chiamare un'attività di spunta ogni volta.
‫E questo è per comportamenti che potrebbero durare più di un tick, come il passaggio a un nemico potrebbe
‫richiedere più tick.
‫Quindi tick task ci permette di fare qualcosa.
‫Ogni messaggio di spunta e su è per altre cose diverse dall'interruzione che potrebbe inviare un messaggio a questa
‫attività.
‫Non dobbiamo davvero preoccuparci di questa particolare funzione.
‫Quindi i primi tre sono pronti.
‫Quelli erano più interessati e visto che il nostro compito consiste semplicemente nell'azzerare il valore
‫della lavagna non appena viene eseguito e poi finirà immediatamente.
‫Non ha bisogno di fare cose su più tick.
‫Siamo interessati all'attività di esecuzione.
‫Quindi, se cerchiamo in questa testa di file per eseguire l'attività, puoi vedere che la firma completa è qui e
‫il tipo restituito qui è questo risultato del nodo IBT.
‫E prende in due cose il componente proprietario e la memoria del nodo.
‫Ora il motivo per cui occupa la memoria del nodo è un po'
‫complicato, ma la cosa importante da sapere qui è che una classe di attività o un'istanza di classe di attività, ce n'è solo una per tutte le lavagne.
‫Essenzialmente, vengono condivisi tra tutto, motivo per cui se vuoi salvare alcune informazioni relative a
‫un nodo in un particolare albero del comportamento, allora quello che devi fare è memorizzarle in questo puntatore
‫di memoria.
‫Ma non faremo nulla di simile.
‫È un po' più avanzato doverlo fare.
‫E ci sono altri modi per aggirare questo problema, come consentire a Unreal di creare più istanze per ogni albero
‫del comportamento, che potrebbe essere un po' pulito o meno, ma questo è un modo leggermente più
‫efficiente e non dobbiamo preoccuparci di esso.
‫In definitiva, ciò che ci interessa è il fatto che possiamo arrivare al nostro componente proprietario, il componente albero del comportamento, e
‫da lì possiamo arrivare ad altre cose come il pedone, ecc. Ma questo è anche l'argomento
‫di un'altra lezione.
‫Quindi ciò che è interessante e importante ora è solo implementare ed eseguire attività.
‫Quindi copieremo la firma, andremo su Clear Blackboard Value Dot H e vediamo solo, questo
‫è pubblico ora?
‫Penso che questo sarà protetto perché è nella sezione predefinita.
‫Quindi creeremo noi stessi una sezione protetta e la incolleremo lì e poi andremo avanti e
‫creeremo l'override solo per assicurarci di essere al sicuro.
‫E poi creeremo un'implementazione nel C++, ricordando che vogliamo sempre chiamare super quando
‫stiamo sovrascrivendo l'attività, quindi super esegui con il componente proprietario e la memoria del nodo che
‫vengono richiamati sul nostro genitore qui.
‫E poi quello che vogliamo fare è prendere la nostra lavagna in modo da poter cancellare la chiave.
‫E ci sono due cose che sono importanti qui.
‫Innanzitutto, come facciamo a sapere quale chiave è stata selezionata?
‫Bene, se andiamo alla nostra lavagna basata su H, puoi vedere che uno dei metodi è ottenere la chiave
‫della lavagna selezionata.
‫Quindi puoi facilmente chiamarlo qualsiasi C++, ottenere la chiave della lavagna selezionata e quella tornerà.
‫Se ci passi sopra, restituisce un nome F, il nome F della chiave della lavagna che è stata selezionata nell'albero
‫del comportamento.
‫Ora, l'altra cosa che dobbiamo fare è essere effettivamente in grado di entrare in possesso della lavagna relativa a questo
‫albero del comportamento.
‫Quindi, per questo, abbiamo il nostro comp.
‫Ora notate qui che il tipo di comp proprietario che viene passato qui è in realtà un riferimento, non un puntatore.
‫Quindi non può essere nullo per cominciare.
‫È fantastico.
‫Ma significa anche che dobbiamo usare l'operatore DOT piuttosto che l'operatore alla
‫freccia perché non stiamo usando un puntatore e da qui possiamo semplicemente ottenere i componenti della lavagna.
‫In modo che ottenga solo il componente della lavagna se ci passi sopra con il mouse.
‫Questo è un puntatore a un componente della lavagna, quindi dovrai usare gli operatori freccia.
‫Quindi sappiamo già come cancellare i tasti sulla lavagna.
‫Sarà la tua sfida.
‫Quindi si spera che la sfida non sia troppo complicata.
‫Si desidera cancellare la chiave selezionata.
‫Possiamo controllare dove l'abbiamo fatto prima.
‫Hai bisogno di include per fare questo?
‫Forse la lavagna ne ha bisogno.
‫Includi usa la chiave selezionata nell'albero del comportamento come chiave che vogliamo cancellare.
‫Quindi metti in pausa il video e prova.
‫Bene.
‫Ben tornato.
‫Quindi proviamoci.
‫Quindi la prima cosa è che abbiamo il nostro componente lavagna.
‫Usiamo l'operatore freccia qui.
‫Non sta venendo fuori niente.
‫Quindi presumo di aver bisogno e in effetti ci sono alcuni scarabocchi rossi di cui ho bisogno che un hash includa qui per fare
‫l'albero del comportamento e quindi il componente della lavagna qui e ora.
‫Spero che il mio completamento automatico dovrebbe funzionare, il che mi consentirà di avere il clear.
‫Proviamo solo a rinfrescare i nostri ricordi.
‫Dove l'abbiamo fatto prima?
‫Se andiamo a sparare, controllo A e do un'occhiata a quello che abbiamo qui.
‫Abbiamo un valore chiaro.
‫È quello che stiamo cercando.
‫Quindi proviamo quel valore chiaro.
‫E cosa prende?
‫Richiede un tasto F o un nome F, un ottimo nome f che possiamo ottenere.
‫E dove abbiamo detto che avremmo potuto ottenerlo con la chiave lavagna get select che si trova su questa classe perché
‫è nella classe genitore.
‫Quindi ottieni la chiave della lavagna selezionata. Semplicemente, stiamo cancellando il valore della chiave della lavagna selezionata.
‫Ora, un'ultima cosa che dobbiamo fare.
‫Questo non faceva parte della sfida, quindi non preoccuparti.
‫Se non sapevi che è necessario restituire perché esiste un valore di ritorno per l'attività di esecuzione del valore
‫della lavagna chiara e il valore di ritorno è piuttosto interessante.
‫Diamo un'occhiata.
‫Seguiamolo con un F12 e vediamo quali diversi stati possiamo restituire dal nostro test di esecuzione.
‫Ora il primo è riuscito.
‫Grande.
‫Ciò sostanzialmente segnala all'albero del comportamento che questa nota è terminata e possiamo passare a
‫quella successiva.
‫Fallito di nuovo.
‫Questo è un finito, quindi possiamo passare al prossimo, ma questa volta sta dicendo che è fallito.
‫In modo che dia le diverse indicazioni, ad esempio, ai nostri nodi di sequenza o ai nostri nodi selezionati su ciò
‫che quei nodi dovrebbero effettivamente fare.
‫Poi siamo stati abortiti, che è sostanzialmente la stessa cosa del fallimento e abbiamo in corso.
‫Se torni in corso da un'attività di esecuzione, in pratica dirà che devi continuare a chiamare tick fino
‫a quando non ti dico diversamente, finché non dico che ho finito ora non lo useremo.
‫Ma è bene tenere presente che se è necessario creare un'attività di lunga durata che
‫verrà eseguita su più tick, dovremo tornare in corso.
‫Ma come ho detto, vogliamo riuscito.
‫Quindi entriamo e facciamolo.
‫Restituisce il risultato del nodo vuoto.
‫Colon.
‫E avrà successo perché siamo riusciti a cancellare quel valore praticamente in ogni caso.
‫Quindi possiamo andare avanti e salvare tutto questo, andare nell'editor e premere compila.
‫E quando sarà completo, andiamo avanti e apriamo la nostra IA e l'albero del comportamento.
‫Quindi quello è un nemico di Beattie?
‫Lo aggancio alla finestra principale e diamo un'occhiata.
‫Abbiamo una lavagna chiara.
‫Il valore ora dovrebbe consentirci di spostarci nell'ultima posizione nota, cancellare il valore della
‫lavagna, attendere cinque, quindi dovremmo vedere che l'indagine sull'ultima posizione di gioco nota dovrebbe essere annullata, quindi
‫dovremmo tornare alla nostra posizione di partenza .
‫Quindi vediamo se questo comportamento ora funziona ora che l'attività è completamente implementata.
‫Quindi viene da me, mi sta indagando.
‫Vado a nascondermi.
‫Quindi entriamo.
‫Hides viene a indagare.
‫Andiamo a nasconderci di nuovo.
‫Quindi vai e nasconditi.
‫Vediamo se riusciamo a individuarlo laggiù.
‫Dovrebbe aspettare in questo momento e poi tornerà al suo punto di partenza, il che purtroppo
‫lo fa incrociare con me.
‫Quindi vediamo se funziona davvero come ci aspettiamo facendo uscire il nostro nemico da una finestra e agganciandoci
‫a destra e mettendo la nostra finestra principale a sinistra.
‫È un po' angusto, ma possiamo accontentarci e poi cercheremo di scappare da questo ragazzo ancora una
‫volta e vedere cosa succede con il suo comportamento.
‫Puoi vedere che si sta spostando nell'ultimo luogo di gioco conosciuto.
‫E ora sta aspettando, avendo liberato la valle.
‫E poi puoi vedere che anche lui si muoverà.
‫E puoi vedere queste barre rosse sui decoratori che ci dicono che nessuna di queste due condizioni
‫è vera.
‫Quindi non può fare in modo che nessuno di questi si sposti finalmente nella posizione di partenza.
‫Quindi ora tremola perché fondamentalmente non può fare nulla.
‫Quindi in pratica è che in questa lezione abbiamo visto come possiamo ottenere le attività beat per eseguire il codice, abbiamo capito i
‫diversi stati che puoi restituire da eseguire attività come ottenere la lavagna dall'attività e
‫anche come ottenere la chiave attualmente selezionata su un compito da lavagna.
‫Nella prossima lezione, vedremo come possiamo impadronirci del mondo al di fuori dell'albero del comportamento della lavagna, come
‫possiamo impadronirci del pedone dall'interno di un'attività dell'albero del comportamento.
‫Lo vedrò.