‫Quindi il nostro obiettivo è essere in grado di sparare proiettili e ottenere un effetto di
‫esplosione quando il proiettile colpisce qualcosa, incluso quando colpiamo la torre nemica e quando i proiettili della torre nemica ci colpiscono.
‫Ciao e bentornato.
‫Ora diamo un'occhiata al nostro piano di sezione e vediamo fino a che punto siamo arrivati.
‫Ora sappiamo di aver creato un carro armato.
‫Può muoversi in tutto il mondo.
‫Abbiamo creato una classe di torretta nemica.
‫Abbiamo aggiunto funzionalità di fuoco e proiettili insieme a danni alla salute e distruzione nel nostro gioco.
‫Ora abbiamo condizioni di vittoria e sconfitta e stiamo visualizzando quelle con widget sul nostro HUD.
‫Ora l'ultimo elemento è aggiungere i nostri effetti speciali, il che significa che abbiamo bisogno di un po' di
‫fumo dietro il nostro proiettile, nonché di esplosioni e suoni.
‫E ci saranno un paio di altre cose che aggiungeremo per rendere più piccante il nostro gioco e renderlo
‫un po' più raffinato.
‫Ora, in questo video, tratteremo alcune particelle di successo.
‫Questi sono effetti speciali per quando il proiettile colpisce qualcosa.
‫Ciò comporterà qualcosa chiamato sistema di particelle.
‫Quindi torniamo nell'editor e diamo un'occhiata ai sistemi di particelle che abbiamo nel nostro progetto.
‫Quindi sono qui nell'editor.
‫Andrò nella cartella delle risorse e degli effetti e qui abbiamo tre effetti.
‫Questi sono chiamati sistemi di particelle.
‫Ora abbiamo un effetto colpo, un effetto morte e una scia di proiettili.
‫Ora andiamo avanti e facciamo doppio clic su p hit effect e vedrai che qui abbiamo un editor di sistema di
‫particelle.
‫E in questa piccola finestra, vedremo questa esplosione accadere più e più volte.
‫Ora, fortunatamente, questo sistema particellare è già stato creato per noi e sembra una bella
‫piccola esplosione.
‫E vorremmo vedere questa esplosione non appena il proiettile colpisce qualcosa.
‫Quindi questo è il nostro obiettivo per questo video.
‫Quindi qui nel codice di V, vorrei tornare alla nostra classe di proiettili.
‫Quindi entriamo nel proiettile H e aggiungerò una variabile a questa classe e questo sarà un
‫sistema di particelle.
‫Ora, questa può essere una variabile privata e il tipo sarà U.
‫Sistema di particelle e sarà un puntatore e possiamo chiamarlo particelle colpite.
‫Ora lo dichiarerò e darò anche a questo una nuova proprietà.
‫Quindi diciamo che sei una tua proprietà e io voglio farcela ovunque così possiamo impostarlo dal progetto per
‫il nostro proiettile.
‫E già che ci sono, darò a questa una categoria e la collocherò nella categoria combattimento, poiché
‫è in qualche modo correlata alle nostre altre variabili di combattimento.
‫Ora questa è modifica ovunque perché prevediamo di impostarla dall'interno del progetto in modo da poter andare
‫avanti e compilarla.
‫Ora torniamo nell'editor e chiuderò i miei altri progetti e andrò nella cartella degli
‫attori qui in progetti.
‫Attori, ecco il nostro B. P. proiettile.
‫Apriamolo e apriamo l'editor completo del progetto.
‫Ora, diamo un'occhiata ai dettagli.
‫Pannello.
‫Ricorda, il sé del proiettile BP deve essere selezionato per vedere queste variabili generali.
‫Ed ecco la nostra sezione di combattimento e vediamo le particelle colpite.
‫Ora qui abbiamo un menu a discesa e possiamo selezionare i sistemi di particelle.
‫Poiché questa variabile è di tipo tuo sistema di particelle, useremo l'effetto colpo per le nostre particelle colpite.
‫Quindi ora abbiamo una variabile e il suo valore è impostato qui nel progetto del proiettile.
‫Quindi compiliamo e salviamo questo.
‫Ora, il prossimo passo è generare effettivamente questo sistema di particelle non appena abbiamo colpito qualcosa, il che significa
‫che il colpo è la funzione perfetta per farlo, ora dobbiamo sapere come generare particelle e usare il
‫gameplay.
‫Statica ha una funzione utile per questo.
‫Si chiama spawn emitter in posizione e dice che riproduce l'effetto specificato nella posizione e nella rotazione
‫specificate.
‫Spara e dimentica.
‫Questo è bello perché non dobbiamo preoccuparci di rimuoverlo o eliminarlo.
‫Abbiamo appena attivato questa funzione.
‫Genera il sistema di particelle e si occupa di ripulirlo per noi, il che è fantastico.
‫Quindi diamo un'occhiata alla sintassi ora.
‫Esistono numerosi parametri di input, ma questa funzione ha un certo numero di sovraccarichi.
‫Ora, poiché ci sono un certo numero di versioni di questa funzione, entriamo nel codice di V e diamo
‫un'occhiata a quelle diverse versioni.
‫Ora aprirò il proiettile CP e darò un'occhiata alla funzione sul colpo.
‫Ora, proprio qui in fondo, ti scriverò l'emettitore di spawn delle statistiche di gioco nella posizione e non appena digito le parentesi
‫di apertura, viene visualizzato un pop-up che mi mostra i parametri di input che devo
‫passare.
‫Ma vediamo uno dei tre, il che significa che ci sono tre diverse versioni di questa funzione.
‫Tre sovraccarichi.
‫Farò due volte clic sulla freccia giù per dare un'occhiata a questo particolare sovraccarico.
‫Ora ci vuole un oggetto del contesto mondiale, un sistema di particelle e una posizione, e i restanti parametri di input hanno.
‫Valori predefiniti, quindi sono facoltativi.
‫Si noti che il parametro di rotazione è impostato su zero rotatore.
‫Ora, se vogliamo, possiamo impostare la rotazione degli emettitori sulla rotazione dell'attore passando in rotazione
‫attiva.
‫Non è troppo importante, ma vorrei generare l'emettitore con la stessa rotazione dell'attore.
‫Quindi vorrei usare la rotazione attiva e passarla.
‫Ma il resto di questi parametri è facoltativo.
‫Quindi, poiché sappiamo che dobbiamo chiamare l'emettitore di spawn sul posto per riprodurre un sistema di particelle, possiamo farlo
‫nella funzione al colpo.
‫Sappiamo che il primo parametro è un oggetto di contesto mondiale e sappiamo già come gestirlo.
‫Sappiamo che ci vuole un sistema particellare e abbiamo una variabile del sistema particellare in cui possiamo passare.
‫Sappiamo anche che abbiamo bisogno di una posizione e di una rotazione e sappiamo come ottenerle per un determinato attore
‫usando la posizione dell'attore e la rotazione dell'attore.
‫Quindi, dal momento che hai tutte queste informazioni, vorrei che usassi l'emettitore di spawn della funzione statica
‫di gioco U nella posizione della funzione al colpo per la classe del proiettile.
‫Quindi passando questo per l'oggetto del contesto mondiale, passando il sistema di particelle stesso, quella nuova variabile
‫delle particelle colpite che abbiamo creato e usa la posizione dei proiettili usando la posizione attiva e usa la
‫rotazione dei proiettili usando la rotazione dell'attore.
‫Metti in pausa il video e genera ora l'emettitore nella funzione al colpo.
‫Bene.
‫Quindi rimuoverò questa riga che abbiamo usato solo per dare un'occhiata agli overload delle funzioni per questa
‫funzione.
‫E lo metterò subito prima di distruggere l'attore.
‫Quindi, se lo hai posizionato, diciamo, alla fine della funzione, va bene.
‫La sfida è stata lasciata aperta per te.
‫Ma lo posizioneremo appena prima di distruggere l'attore, perché se distruggiamo
‫l'attore, non ha senso generare particelle dopo.
‫Quindi lo faremo prima di distruggere l'attore.
‫Quindi diremo che le statistiche di gioco generano l'emettitore sul posto e per prima cosa abbiamo bisogno del nostro oggetto
‫contesto mondiale, che sarà questo.
‫Successivamente abbiamo bisogno delle nostre particelle di successo seguite dalla posizione dei nostri attori per le quali utilizzeremo la posizione di
‫get attore.
‫Quindi passeremo nella rotazione per la quale useremo la rotazione dell'attore e ora stiamo generando
‫l'emettitore nella posizione.
‫Ora, una cosa che vorrei sottolineare è che se il mio proprietario è un puntatore nullo e torniamo presto fuori
‫da questa funzione, beh, potrebbe essere una buona idea distruggere il proiettile lì.
‫Quindi vorrei rimuovere questa dichiarazione di ritorno e fornire a questa dichiarazione se il suo corpo verrà comunque restituito.
‫Ma poco prima del nostro ritorno, dovremmo distruggere l'attore.
‫Quindi chiamerò distruggere qui in questo se check.
‫E infatti, anche se falliamo tutti gli altri controlli qui, controllando l'altro attore, non vogliamo
‫che un proiettile indugi nel mondo.
‫Quindi dovremmo spostare questa seconda chiamata per distruggere al di fuori del check if.
‫In questo modo, distruggiamo il proiettile quando colpisce qualcosa, qualunque cosa accada.
‫In questo modo, non abbiamo proiettili persistenti per nessun motivo.
‫Bene?
‫E mentre siamo al sicuro, dovremmo notare che stiamo usando le particelle colpite qui, il che significa
‫che dovremmo controllare se le particelle colpite sono impostate prima di tentare di usarle.
‫In caso contrario, potremmo utilizzare una variabile di particelle hit che non è stata impostata e non dovremmo utilizzare puntatori
‫nulli.
‫Quindi collocheremo qui un controllo if per vedere se le particelle colpite sono valide e se è valido, allora
‫è sicuro chiamare l'emettitore di spawn nella posizione qui.
‫Tutto bene.
‫Andiamo avanti e compiliamo questo ora.
‫E con una compilazione riuscita, torneremo nell'editor ed ecco il proiettile BP.
‫Abbiamo le nostre particelle di successo impostate, quindi assicurati che sia impostato prima di testarlo.
‫Altrimenti, non vedremo nulla.
‫E se premiamo play, possiamo aspettare il nostro widget go e poi boom, dai un'occhiata.
‫Abbiamo nuvole di fumo.
‫Abbiamo colpito particelle generate.
‫Andrò avanti e sparerò ai nostri nemici e vedremo che verranno generati quando
‫colpiremo anche i nemici.
‫Perfetto.
‫Quindi, in sintesi, ora abbiamo generato alcune particelle colpite.
‫Abbiamo esplosioni quando i nostri proiettili colpiscono qualcosa nel mondo.
‫E il passo successivo è avere una scia di fumo che segua dietro il proiettile mentre vola
‫nell'aria.
‫E di questo ci occuperemo nel prossimo video.
‫Ci vediamo presto.