﻿1
00:00:04,020 --> 00:00:10,620
‫Quindi il nostro obiettivo è essere in grado di sparare proiettili e ottenere un effetto di

2
00:00:10,620 --> 00:00:18,480
‫esplosione quando il proiettile colpisce qualcosa, incluso quando colpiamo la torre nemica e quando i proiettili della torre nemica ci colpiscono.

3
00:00:19,390 --> 00:00:21,310
‫Ciao e bentornato.

4
00:00:21,340 --> 00:00:25,130
‫Ora diamo un'occhiata al nostro piano di sezione e vediamo fino a che punto siamo arrivati.

5
00:00:25,150 --> 00:00:26,780
‫Ora sappiamo di aver creato un carro armato.

6
00:00:26,800 --> 00:00:28,250
‫Può muoversi in tutto il mondo.

7
00:00:28,270 --> 00:00:30,250
‫Abbiamo creato una classe di torretta nemica.

8
00:00:30,250 --> 00:00:36,630
‫Abbiamo aggiunto funzionalità di fuoco e proiettili insieme a danni alla salute e distruzione nel nostro gioco.

9
00:00:36,640 --> 00:00:42,970
‫Ora abbiamo condizioni di vittoria e sconfitta e stiamo visualizzando quelle con widget sul nostro HUD.

10
00:00:43,000 --> 00:00:49,630
‫Ora l'ultimo elemento è aggiungere i nostri effetti speciali, il che significa che abbiamo bisogno di un po' di

11
00:00:49,630 --> 00:00:53,500
‫fumo dietro il nostro proiettile, nonché di esplosioni e suoni.

12
00:00:53,500 --> 00:00:58,660
‫E ci saranno un paio di altre cose che aggiungeremo per rendere più piccante il nostro gioco e renderlo

13
00:00:58,660 --> 00:00:59,760
‫un po' più raffinato.

14
00:00:59,770 --> 00:01:03,370
‫Ora, in questo video, tratteremo alcune particelle di successo.

15
00:01:03,370 --> 00:01:06,880
‫Questi sono effetti speciali per quando il proiettile colpisce qualcosa.

16
00:01:06,880 --> 00:01:10,000
‫Ciò comporterà qualcosa chiamato sistema di particelle.

17
00:01:10,000 --> 00:01:15,610
‫Quindi torniamo nell'editor e diamo un'occhiata ai sistemi di particelle che abbiamo nel nostro progetto.

18
00:01:15,610 --> 00:01:17,110
‫Quindi sono qui nell'editor.

19
00:01:17,110 --> 00:01:22,840
‫Andrò nella cartella delle risorse e degli effetti e qui abbiamo tre effetti.

20
00:01:22,840 --> 00:01:25,600
‫Questi sono chiamati sistemi di particelle.

21
00:01:25,600 --> 00:01:30,280
‫Ora abbiamo un effetto colpo, un effetto morte e una scia di proiettili.

22
00:01:30,280 --> 00:01:36,910
‫Ora andiamo avanti e facciamo doppio clic su p hit effect e vedrai che qui abbiamo un editor di sistema di

23
00:01:36,910 --> 00:01:37,570
‫particelle.

24
00:01:37,570 --> 00:01:43,960
‫E in questa piccola finestra, vedremo questa esplosione accadere più e più volte.

25
00:01:43,960 --> 00:01:49,990
‫Ora, fortunatamente, questo sistema particellare è già stato creato per noi e sembra una bella

26
00:01:49,990 --> 00:01:50,830
‫piccola esplosione.

27
00:01:50,830 --> 00:01:56,710
‫E vorremmo vedere questa esplosione non appena il proiettile colpisce qualcosa.

28
00:01:56,710 --> 00:01:59,200
‫Quindi questo è il nostro obiettivo per questo video.

29
00:01:59,200 --> 00:02:04,210
‫Quindi qui nel codice di V, vorrei tornare alla nostra classe di proiettili.

30
00:02:04,210 --> 00:02:11,890
‫Quindi entriamo nel proiettile H e aggiungerò una variabile a questa classe e questo sarà un

31
00:02:11,890 --> 00:02:13,480
‫sistema di particelle.

32
00:02:13,480 --> 00:02:18,070
‫Ora, questa può essere una variabile privata e il tipo sarà U.

33
00:02:18,070 --> 00:02:24,280
‫Sistema di particelle e sarà un puntatore e possiamo chiamarlo particelle colpite.

34
00:02:24,280 --> 00:02:29,140
‫Ora lo dichiarerò e darò anche a questo una nuova proprietà.

35
00:02:29,140 --> 00:02:36,220
‫Quindi diciamo che sei una tua proprietà e io voglio farcela ovunque così possiamo impostarlo dal progetto per

36
00:02:36,220 --> 00:02:37,720
‫il nostro proiettile.

37
00:02:37,720 --> 00:02:43,750
‫E già che ci sono, darò a questa una categoria e la collocherò nella categoria combattimento, poiché

38
00:02:43,750 --> 00:02:48,070
‫è in qualche modo correlata alle nostre altre variabili di combattimento.

39
00:02:48,070 --> 00:02:54,430
‫Ora questa è modifica ovunque perché prevediamo di impostarla dall'interno del progetto in modo da poter andare

40
00:02:54,430 --> 00:02:55,840
‫avanti e compilarla.

41
00:02:56,170 --> 00:03:02,710
‫Ora torniamo nell'editor e chiuderò i miei altri progetti e andrò nella cartella degli

42
00:03:02,710 --> 00:03:04,660
‫attori qui in progetti.

43
00:03:04,780 --> 00:03:07,510
‫Attori, ecco il nostro B. P. proiettile.

44
00:03:07,510 --> 00:03:11,200
‫Apriamolo e apriamo l'editor completo del progetto.

45
00:03:11,200 --> 00:03:13,360
‫Ora, diamo un'occhiata ai dettagli.

46
00:03:13,360 --> 00:03:13,720
‫Pannello.

47
00:03:13,720 --> 00:03:19,120
‫Ricorda, il sé del proiettile BP deve essere selezionato per vedere queste variabili generali.

48
00:03:19,120 --> 00:03:22,420
‫Ed ecco la nostra sezione di combattimento e vediamo le particelle colpite.

49
00:03:22,420 --> 00:03:26,500
‫Ora qui abbiamo un menu a discesa e possiamo selezionare i sistemi di particelle.

50
00:03:26,500 --> 00:03:32,890
‫Poiché questa variabile è di tipo tuo sistema di particelle, useremo l'effetto colpo per le nostre particelle colpite.

51
00:03:32,890 --> 00:03:38,230
‫Quindi ora abbiamo una variabile e il suo valore è impostato qui nel progetto del proiettile.

52
00:03:38,230 --> 00:03:40,750
‫Quindi compiliamo e salviamo questo.

53
00:03:40,780 --> 00:03:47,770
‫Ora, il prossimo passo è generare effettivamente questo sistema di particelle non appena abbiamo colpito qualcosa, il che significa

54
00:03:47,770 --> 00:03:54,730
‫che il colpo è la funzione perfetta per farlo, ora dobbiamo sapere come generare particelle e usare il

55
00:03:54,760 --> 00:03:55,240
‫gameplay.

56
00:03:55,240 --> 00:03:57,880
‫Statica ha una funzione utile per questo.

57
00:03:58,240 --> 00:04:06,130
‫Si chiama spawn emitter in posizione e dice che riproduce l'effetto specificato nella posizione e nella rotazione

58
00:04:06,130 --> 00:04:07,060
‫specificate.

59
00:04:07,240 --> 00:04:09,460
‫Spara e dimentica.

60
00:04:09,580 --> 00:04:14,710
‫Questo è bello perché non dobbiamo preoccuparci di rimuoverlo o eliminarlo.

61
00:04:14,710 --> 00:04:17,140
‫Abbiamo appena attivato questa funzione.

62
00:04:17,140 --> 00:04:22,300
‫Genera il sistema di particelle e si occupa di ripulirlo per noi, il che è fantastico.

63
00:04:22,300 --> 00:04:25,210
‫Quindi diamo un'occhiata alla sintassi ora.

64
00:04:25,210 --> 00:04:30,520
‫Esistono numerosi parametri di input, ma questa funzione ha un certo numero di sovraccarichi.

65
00:04:30,520 --> 00:04:35,770
‫Ora, poiché ci sono un certo numero di versioni di questa funzione, entriamo nel codice di V e diamo

66
00:04:35,770 --> 00:04:37,240
‫un'occhiata a quelle diverse versioni.

67
00:04:37,690 --> 00:04:44,050
‫Ora aprirò il proiettile CP e darò un'occhiata alla funzione sul colpo.

68
00:04:44,050 --> 00:04:52,570
‫Ora, proprio qui in fondo, ti scriverò l'emettitore di spawn delle statistiche di gioco nella posizione e non appena digito le parentesi

69
00:04:52,570 --> 00:04:58,210
‫di apertura, viene visualizzato un pop-up che mi mostra i parametri di input che devo

70
00:04:58,210 --> 00:04:58,990
‫passare.

71
00:04:58,990 --> 00:05:03,940
‫Ma vediamo uno dei tre, il che significa che ci sono tre diverse versioni di questa funzione.

72
00:05:03,940 --> 00:05:05,260
‫Tre sovraccarichi.

73
00:05:05,290 --> 00:05:10,900
‫Farò due volte clic sulla freccia giù per dare un'occhiata a questo particolare sovraccarico.

74
00:05:10,990 --> 00:05:18,850
‫Ora ci vuole un oggetto del contesto mondiale, un sistema di particelle e una posizione, e i restanti parametri di input hanno.

75
00:05:19,210 --> 00:05:21,460
‫Valori predefiniti, quindi sono facoltativi.

76
00:05:21,490 --> 00:05:25,940
‫Si noti che il parametro di rotazione è impostato su zero rotatore.

77
00:05:25,960 --> 00:05:33,070
‫Ora, se vogliamo, possiamo impostare la rotazione degli emettitori sulla rotazione dell'attore passando in rotazione

78
00:05:33,070 --> 00:05:34,030
‫attiva.

79
00:05:34,150 --> 00:05:39,730
‫Non è troppo importante, ma vorrei generare l'emettitore con la stessa rotazione dell'attore.

80
00:05:39,730 --> 00:05:43,510
‫Quindi vorrei usare la rotazione attiva e passarla.

81
00:05:43,510 --> 00:05:45,580
‫Ma il resto di questi parametri è facoltativo.

82
00:05:45,580 --> 00:05:52,240
‫Quindi, poiché sappiamo che dobbiamo chiamare l'emettitore di spawn sul posto per riprodurre un sistema di particelle, possiamo farlo

83
00:05:52,240 --> 00:05:54,010
‫nella funzione al colpo.

84
00:05:54,400 --> 00:06:00,310
‫Sappiamo che il primo parametro è un oggetto di contesto mondiale e sappiamo già come gestirlo.

85
00:06:00,430 --> 00:06:06,100
‫Sappiamo che ci vuole un sistema particellare e abbiamo una variabile del sistema particellare in cui possiamo passare.

86
00:06:06,130 --> 00:06:13,390
‫Sappiamo anche che abbiamo bisogno di una posizione e di una rotazione e sappiamo come ottenerle per un determinato attore

87
00:06:13,390 --> 00:06:16,330
‫usando la posizione dell'attore e la rotazione dell'attore.

88
00:06:16,330 --> 00:06:22,450
‫Quindi, dal momento che hai tutte queste informazioni, vorrei che usassi l'emettitore di spawn della funzione statica

89
00:06:22,450 --> 00:06:27,580
‫di gioco U nella posizione della funzione al colpo per la classe del proiettile.

90
00:06:27,580 --> 00:06:34,120
‫Quindi passando questo per l'oggetto del contesto mondiale, passando il sistema di particelle stesso, quella nuova variabile

91
00:06:34,120 --> 00:06:41,230
‫delle particelle colpite che abbiamo creato e usa la posizione dei proiettili usando la posizione attiva e usa la

92
00:06:41,230 --> 00:06:44,290
‫rotazione dei proiettili usando la rotazione dell'attore.

93
00:06:44,680 --> 00:06:49,390
‫Metti in pausa il video e genera ora l'emettitore nella funzione al colpo.

94
00:06:53,310 --> 00:06:53,640
‫Bene.

95
00:06:53,640 --> 00:06:59,460
‫Quindi rimuoverò questa riga che abbiamo usato solo per dare un'occhiata agli overload delle funzioni per questa

96
00:06:59,460 --> 00:07:00,090
‫funzione.

97
00:07:00,090 --> 00:07:04,080
‫E lo metterò subito prima di distruggere l'attore.

98
00:07:04,080 --> 00:07:08,010
‫Quindi, se lo hai posizionato, diciamo, alla fine della funzione, va bene.

99
00:07:08,040 --> 00:07:10,320
‫La sfida è stata lasciata aperta per te.

100
00:07:10,320 --> 00:07:15,600
‫Ma lo posizioneremo appena prima di distruggere l'attore, perché se distruggiamo

101
00:07:15,600 --> 00:07:19,050
‫l'attore, non ha senso generare particelle dopo.

102
00:07:19,050 --> 00:07:21,570
‫Quindi lo faremo prima di distruggere l'attore.

103
00:07:21,570 --> 00:07:30,210
‫Quindi diremo che le statistiche di gioco generano l'emettitore sul posto e per prima cosa abbiamo bisogno del nostro oggetto

104
00:07:30,210 --> 00:07:32,370
‫contesto mondiale, che sarà questo.

105
00:07:32,400 --> 00:07:39,870
‫Successivamente abbiamo bisogno delle nostre particelle di successo seguite dalla posizione dei nostri attori per le quali utilizzeremo la posizione di

106
00:07:39,870 --> 00:07:40,950
‫get attore.

107
00:07:41,040 --> 00:07:48,870
‫Quindi passeremo nella rotazione per la quale useremo la rotazione dell'attore e ora stiamo generando

108
00:07:48,870 --> 00:07:50,820
‫l'emettitore nella posizione.

109
00:07:50,850 --> 00:07:57,600
‫Ora, una cosa che vorrei sottolineare è che se il mio proprietario è un puntatore nullo e torniamo presto fuori

110
00:07:57,600 --> 00:08:02,520
‫da questa funzione, beh, potrebbe essere una buona idea distruggere il proiettile lì.

111
00:08:02,520 --> 00:08:09,330
‫Quindi vorrei rimuovere questa dichiarazione di ritorno e fornire a questa dichiarazione se il suo corpo verrà comunque restituito.

112
00:08:09,330 --> 00:08:13,920
‫Ma poco prima del nostro ritorno, dovremmo distruggere l'attore.

113
00:08:13,920 --> 00:08:17,160
‫Quindi chiamerò distruggere qui in questo se check.

114
00:08:17,250 --> 00:08:24,300
‫E infatti, anche se falliamo tutti gli altri controlli qui, controllando l'altro attore, non vogliamo

115
00:08:24,330 --> 00:08:27,240
‫che un proiettile indugi nel mondo.

116
00:08:27,240 --> 00:08:31,770
‫Quindi dovremmo spostare questa seconda chiamata per distruggere al di fuori del check if.

117
00:08:31,770 --> 00:08:35,670
‫In questo modo, distruggiamo il proiettile quando colpisce qualcosa, qualunque cosa accada.

118
00:08:35,670 --> 00:08:39,120
‫In questo modo, non abbiamo proiettili persistenti per nessun motivo.

119
00:08:39,120 --> 00:08:39,680
‫Bene?

120
00:08:39,690 --> 00:08:44,940
‫E mentre siamo al sicuro, dovremmo notare che stiamo usando le particelle colpite qui, il che significa

121
00:08:44,940 --> 00:08:49,800
‫che dovremmo controllare se le particelle colpite sono impostate prima di tentare di usarle.

122
00:08:49,800 --> 00:08:56,250
‫In caso contrario, potremmo utilizzare una variabile di particelle hit che non è stata impostata e non dovremmo utilizzare puntatori

123
00:08:56,250 --> 00:08:56,700
‫nulli.

124
00:08:56,700 --> 00:09:03,690
‫Quindi collocheremo qui un controllo if per vedere se le particelle colpite sono valide e se è valido, allora

125
00:09:03,690 --> 00:09:07,320
‫è sicuro chiamare l'emettitore di spawn nella posizione qui.

126
00:09:07,350 --> 00:09:08,280
‫Tutto bene.

127
00:09:08,280 --> 00:09:10,380
‫Andiamo avanti e compiliamo questo ora.

128
00:09:10,470 --> 00:09:16,200
‫E con una compilazione riuscita, torneremo nell'editor ed ecco il proiettile BP.

129
00:09:16,200 --> 00:09:21,420
‫Abbiamo le nostre particelle di successo impostate, quindi assicurati che sia impostato prima di testarlo.

130
00:09:21,420 --> 00:09:23,010
‫Altrimenti, non vedremo nulla.

131
00:09:23,010 --> 00:09:30,300
‫E se premiamo play, possiamo aspettare il nostro widget go e poi boom, dai un'occhiata.

132
00:09:30,300 --> 00:09:32,580
‫Abbiamo nuvole di fumo.

133
00:09:32,580 --> 00:09:35,880
‫Abbiamo colpito particelle generate.

134
00:09:35,880 --> 00:09:42,630
‫Andrò avanti e sparerò ai nostri nemici e vedremo che verranno generati quando

135
00:09:42,630 --> 00:09:44,820
‫colpiremo anche i nemici.

136
00:09:45,450 --> 00:09:46,440
‫Perfetto.

137
00:09:46,800 --> 00:09:50,430
‫Quindi, in sintesi, ora abbiamo generato alcune particelle colpite.

138
00:09:50,430 --> 00:09:54,780
‫Abbiamo esplosioni quando i nostri proiettili colpiscono qualcosa nel mondo.

139
00:09:54,780 --> 00:10:00,540
‫E il passo successivo è avere una scia di fumo che segua dietro il proiettile mentre vola

140
00:10:00,540 --> 00:10:00,960
‫nell'aria.

141
00:10:00,960 --> 00:10:04,200
‫E di questo ci occuperemo nel prossimo video.

142
00:10:04,740 --> 00:10:05,700
‫Ci vediamo presto.

