‫Ciao e Benvenuto.
‫In questa lezione, creeremo la nostra prima traccia geometrica in modo che quando andiamo a guardare i nostri
‫gargoyle, ci avviciniamo abbastanza a portata di mano.
‫Quindi, come se non bastasse, stampa il nome dell'attore che è stato colpito dalla traccia.
‫Immergiamoci e vediamo come può farlo.
‫Quindi siamo finalmente pronti per affrontare questa spazzata singolo per canale.
‫C'erano molti pezzi che dovevamo avere in atto per farlo funzionare.
‫Ma finalmente, siamo qui.
‫Quindi diamo un'occhiata alla sintassi di questa funzione.
‫Quindi siamo in un posto molto migliore per capire cosa stava succedendo qui in questi tipi.
‫Quindi il valore restituito è un booleano, che sostanzialmente ci dice se abbiamo trovato o meno qualcosa con lo
‫sweep.
‫Ora il secondo argomento, come puoi vedere qui, è un riferimento.
‫Ha questa e commerciale.
‫E non importa se c'è uno spazio dopo la e commerciale o uno spazio tra il
‫nome della variabile, è lo stesso finché c'è una e commerciale dopo il tipo che dice che quel tipo è
‫un riferimento ed è un tipo chiamato risultato F hit , puoi vedere che è uno struct.
‫Quindi questo risultato del colpo F è il colpo alternativo.
‫Questo è il risultato che esce dalla spazzata.
‫Possiamo vedere in cosa sono state colpite le cose in quanto è una struttura perché ci sono più cose diverse,
‫informazioni che possono venire fuori da questa spazzata.
‫Allora abbiamo un riferimento vettoriale f costante.
‫Quindi questo sta prendendo il nostro vettore iniziale come riferimento invece di copiarlo.
‫Lo stesso con il vettore finale, quindi abbiamo una rotazione.
‫Quindi questa è la rotazione della forma usando un f quat, che è una struttura alternativa all'uso del rotatore
‫f.
‫Vedremo come possiamo praticamente semplicemente essere messi in una rotazione zero qui perché stiamo usando una sfera.
‫Non importa.
‫La prossima cosa che arriva è il canale Trace e vedremo come capire come viene chiamato il
‫nostro canale Trace in C++.
‫E poi abbiamo la nostra forma di collisione, che sarà l'ultimo argomento che dobbiamo fornire, e vedremo
‫come possiamo creare una sfera di un certo raggio in questo modo.
‫Ma prima di iniziare, dovremo sapere qual è quel raggio e come averlo configurato.
‫Quindi esamineremo il nostro Grandpa Dot H, rimuoveremo queste funzioni che abbiamo
‫utilizzato come esempi per i riferimenti ai contenuti di riferimento e i nostri parametri.
‫E creeremo una nuova proprietà che verrà aggiunta ovunque,
‫e sarà un galleggiante chiamato raggio di presa, e lo imposteremo a 101 metri.
‫Quindi esaminiamo ora il C++ e rimuoviamo i riferimenti a stampa danneggiata e presenta danni
‫e possiamo rimuovere tutto ciò anche dal componente TIC.
‫L'intera dichiarazione di dove stiamo passando il danno, perché qui stiamo tracciando la nostra linea
‫di debug e ora vogliamo fare una chiamata per spazzare singolo per canale.
‫Quindi digiteremo sweep.
‫Quindi digiteremo get world parentesi perché sappiamo che questa è una funzione sul nuovo oggetto del
‫mondo.
‫Farò una freccia perché sappiamo che get world restituisce un puntatore
‫e quindi faremo uno sweep singolo per canale in questo modo e dovremo inserire un parametro out affinché venga popolato
‫come primo argomento qui.
‫Quindi creeremo una variabile che sarà vuota, che verrà popolata e deve avere il
‫tipo giusto.
‫Quindi sarà un risultato f f hit e chiameremo semplicemente la variabile stessa hit result, mettere un punto e virgola
‫alla fine perché non lo stiamo inizializzando, non gli stiamo dando alcun valore, ma
‫stiamo lo passerà in modo che gli venga assegnato un valore dalla funzione sweep single per canale.
‫Quindi questo è il nostro risultato di successo.
‫Quindi dobbiamo passare i fattori di inizio e fine che sappiamo non verranno copiati ma a cui si
‫farà riferimento.
‫Ora abbiamo bisogno di popolare la rotazione che possiamo fare con una semplice identità di due punti e due punti squat
‫che dice fondamentalmente che questa non è una rotazione.
‫È solo un linguaggio un po' strano per questo.
‫È un discorso matematico per significare che questa non è una rotazione.
‫Successivamente, abbiamo bisogno del canale di collisione della traccia.
‫Ora, come possiamo trovare quel canale di collisione della traccia?
‫Bene, se andiamo nella cartella che contiene il nostro progetto e entriamo in config e quindi andiamo all'ini del motore predefinito,
‫fare clic con il pulsante destro del mouse e aprire con il codice di Visual Studio.
‫E qui mi piacerebbe cercare la grammatica in modo da poter vedere il canale di risposta alle collisioni per il
‫grabber.
‫Ed è stato fondamentalmente impostato qui nell'INI del motore predefinito.
‫Viene menzionato solo una volta nell'intero file e puoi vedere il nome del canale.
‫Questo è il nome del canale in C++ non è molto.
‫Ovvio, ma è s. e. c.
‫Game Trace Channel due, quindi possiamo andare avanti e copiarlo e poi possiamo tornare a Prendo una copia e la incollo
‫qui come il canale di traccia che vogliamo.
‫Ora, questa linea sta diventando piuttosto lunga e ciò che possiamo fare per compensare è
‫che possiamo effettivamente mettere ciascuno di questi parametri su linee separate, o almeno distribuirli.
‫Quindi forse l'inizio e la fine sono gli stessi.
‫L'identità su è su una riga, il canale di traccia è su un'altra riga come.
‫Quindi ora questo ci dà solo un po' più di spazio per leggere questi lunghi elenchi di argomenti.
‫Ora, se torniamo alla documentazione, possiamo vedere la prossima cosa che dobbiamo passare qui è
‫una forma di collisione F.
‫Quindi dobbiamo costruire una forma.
‫Forse lo faremo come una variabile separata in alto.
‫Lo farò solo prima del risultato del colpo F per chiarire che il risultato del colpo F è in realtà un
‫parametro out.
‫Lo lascerò sempre come l'ultima cosa prima della chiamata alla funzione.
‫Quindi creeremo una forma di collisione F, che chiameremo sfera, e imposteremo due
‫uguali alla forma di collisione F.
‫I due punti, i due punti fanno la sfera.
‫Quindi questo creerà una nuova forma di collisione della sfera.
‫E l'argomento di questa funzione è il raggio della sfera che abbiamo come variabile del raggio di presa che abbiamo configurato
‫come proprietà, metti un punto e virgola alla fine di questa linea e possiamo passare nella sfera
‫come argomenti finali al canale di scansione funzione e metti un punto e virgola alla fine di quella riga.
‫Ora un'altra cosa è che questa funzione che conosciamo restituisce un valore booleano, ovvero se abbiamo colpito qualcosa.
‫Quindi inserirò il risultato in una variabile booleana chiamata has hit ed è ciò che useremo
‫più avanti in questa funzione.
‫Quindi vorrei sfidarti a stampare il nome dell'attore di successo.
‫Quindi ora abbiamo questa spazzata in corso.
‫Dovremmo essere in grado di ottenere alcuni risultati da esso.
‫Quindi usa un'istruzione if per stampare se abbiamo qualcosa.
‫Quindi, se quel booleano è vero, è allora che stamperemo il nome dell'attore.
‫Otterrai all'attore che la traccia quadrata viene colpita usando la struttura del risultato del colpo.
‫Ha un metodo su di esso a cui puoi accedere con l'operatore DOT perché è uno struct e non è un
‫puntatore allo struct.
‫Puoi fare un punto, recitare e usare le parentesi e questo ti restituisce un puntatore dell'attore.
‫Quindi usando il puntatore attivo puoi ottenere il nome dell'attore usando il metodo get
‫nome attore o etichetta e pensare se vuoi usare l'operatore punto o freccia per questo e quindi compilare e testare
‫dopo aver stampato il nome dell'attore e vedere cosa puoi colpito sulla scena.
‫Metti in pausa il video e prova.
‫Bene.
‫Ben tornato.
‫Quindi inizieremo con la creazione dell'istruzione if.
‫Quindi, se ha colpito, metteremo delle parentesi graffe e faremo prima di tutto, vogliamo ottenere quel
‫punto attore.
‫Quindi un attore di successo è uguale ai risultati di successo.
‫Prendi il punto.
‫Attore.
‫Parentesi.
‫Piace.
‫Quindi faremo un dialogo e scriveremo un attore di successo.
‫Due punti percentuali e possiamo fare un attore di successo.
‫E poiché è un puntatore qui, possiamo fare una frecciata dell'attore e ottenere.
‫Nome o etichetta dell'attore.
‫Poi alcune parentesi.
‫E poiché questa è una stringa, dobbiamo mettere una stella davanti all'intero shebang in modo che possa visualizzarlo
‫correttamente in un registro delle query.
‫Ok, quindi ora dobbiamo solo andare avanti e compilare questo.
‫Quindi, una volta che siamo nella scena, apriamo il registro di output e lo colleghiamo al layout in modo da poterlo
‫vedere mentre giochiamo.
‫E hanno premuto il pulsante di riproduzione e immediatamente puoi vedere che stiamo colpendo quella statua del gargoyle.
‫Se mi giro e guardo qualcos'altro, puoi capire perché non è molto chiaro se non sto
‫colpendo nulla o se non mostra nulla.
‫Quindi quello che ho intenzione di fare è inserire qui una dichiarazione alt to if, mettere alcune parentesi in
‫più e farò un altro registro annuale.
‫E questa volta il testo dirà, nessun attore ha colpito, ricompiliamo e andiamo a suonare nell'editor.
‫E puoi vederlo ora.
‫Dice che nessun attore ha colpito tutto il tempo finché non vado e inizio a guardare il gargoyle.
‫E ora sta dicendo che il gargoyle è la cosa che viene colpita.
‫Se mi sposto troppo indietro per potermi allontanare, puoi vedere che sta dicendo che nessun attore viene
‫colpito di nuovo.
‫Roba fantastica.
‫Quindi ora abbiamo eseguito una scansione della geometria con un oggetto sferico e possiamo vedere che sta effettivamente reagendo solo
‫agli attori nei nostri particolari canali di traccia, come i Gargoyle, l'unico che è impostato al
‫momento.
‫Quindi è l'unico che sta trovando.
‫Ci vediamo alla prossima lezione.