﻿1
00:00:04,130 --> 00:00:10,460
‫Quindi l'obiettivo di questo video è avere proiettili che si lancino effettivamente nell'aria e si

2
00:00:10,460 --> 00:00:11,930
‫comportino come dovrebbero.

3
00:00:12,020 --> 00:00:13,520
‫Ehi, bentornato.

4
00:00:13,550 --> 00:00:19,430
‫In questo video, ci occupiamo di fare in modo che il nostro proiettile si comporti effettivamente come un proiettile e si muova.

5
00:00:19,610 --> 00:00:22,040
‫Ora, ci sono diversi modi per gestirlo.

6
00:00:22,070 --> 00:00:28,220
‫Un modo è impostare manualmente la posizione e la rotazione del proiettile da soli.

7
00:00:28,250 --> 00:00:33,680
‫Ora, questo generalmente richiederebbe di aggiornare ogni fotogramma, quindi probabilmente lo inseriremmo nella

8
00:00:33,680 --> 00:00:34,940
‫funzione tick.

9
00:00:35,210 --> 00:00:41,810
‫Un altro modo è semplicemente aggiungere un impulso al proiettile e lasciare che il motore fisico prenda il sopravvento.

10
00:00:41,900 --> 00:00:48,440
‫In sostanza, stiamo applicando una forza e lanciando quel proiettile e lasciando che la gravità faccia il suo

11
00:00:48,440 --> 00:00:51,380
‫lavoro, e il proiettile volerà via in aria.

12
00:00:51,410 --> 00:00:55,310
‫Ora, un altro modo sarebbe usare un componente di movimento.

13
00:00:55,340 --> 00:01:00,560
‫Ora, questo è un tipo speciale di componente che vorremmo aggiungere alla nostra classe di proiettili.

14
00:01:00,560 --> 00:01:06,230
‫E dopo aver impostato alcuni parametri sulla componente di movimento, la componente di movimento gestirà

15
00:01:06,230 --> 00:01:08,060
‫il movimento per l'attore.

16
00:01:08,090 --> 00:01:15,860
‫Ora capita che Unreal Engine abbia un tipo di componente integrato realizzato appositamente per i proiettili.

17
00:01:15,860 --> 00:01:20,210
‫Quindi questo sfrutta alcune delle funzionalità integrate di Unreal Engine.

18
00:01:20,210 --> 00:01:26,120
‫E così facendo, consentiamo al componente di movimento di gestire il movimento per noi in base alle impostazioni

19
00:01:26,120 --> 00:01:27,020
‫che forniamo.

20
00:01:27,020 --> 00:01:29,360
‫Quindi questo è il metodo che useremo.

21
00:01:29,360 --> 00:01:35,750
‫Quindi vorremmo aggiungere un componente di movimento del proiettile alla nostra classe proiettile, e questo è ciò

22
00:01:35,750 --> 00:01:38,690
‫che gestirà il movimento per l'oggetto proiettile.

23
00:01:38,690 --> 00:01:45,440
‫Quindi, mentre generiamo un proiettile nel mondo, il componente di movimento del proiettile che appartiene alla classe del proiettile,

24
00:01:45,440 --> 00:01:51,620
‫può essere impostato e personalizzato in base alle variabili sulla classe di movimento del proiettile che abbiamo

25
00:01:51,650 --> 00:01:52,190
‫impostato.

26
00:01:52,220 --> 00:01:58,340
‫Ora ne imposteremo un paio, come la sua velocità iniziale e la sua velocità massima e la componente

27
00:01:58,340 --> 00:02:02,750
‫di movimento del proiettile sposterà effettivamente il proiettile nel mondo per noi.

28
00:02:02,780 --> 00:02:06,290
‫Ora, ecco la pagina della documentazione di Unreal Engine per te.

29
00:02:06,290 --> 00:02:07,940
‫Componente di movimento del proiettile.

30
00:02:07,940 --> 00:02:13,130
‫Questo è il componente che ci interessa e vedrai che dice che il componente di movimento del proiettile

31
00:02:13,130 --> 00:02:16,700
‫aggiorna la posizione di un altro componente durante il suo tick.

32
00:02:16,700 --> 00:02:19,340
‫Per impostazione predefinita, sposterà il componente del percorso.

33
00:02:19,370 --> 00:02:20,900
‫Ora ecco l'inclusione.

34
00:02:20,900 --> 00:02:26,060
‫E se continui a scorrere verso il basso, vedrai alcune delle variabili che possono essere impostate sul componente

35
00:02:26,060 --> 00:02:26,810
‫di movimento.

36
00:02:26,810 --> 00:02:30,740
‫Quindi scorri questo e dai un'occhiata e guarda quali sono le opzioni.

37
00:02:30,770 --> 00:02:36,770
‫Ora aggiungiamo un componente di movimento del proiettile alla nostra classe nello stesso modo in cui aggiungeremmo qualsiasi altro componente,

38
00:02:36,770 --> 00:02:39,350
‫il che significa che sai già come farlo.

39
00:02:39,350 --> 00:02:45,980
‫Quindi la tua sfida è entrare nella classe del proiettile e aggiungere una variabile puntatore del componente del

40
00:02:45,980 --> 00:02:49,310
‫movimento del proiettile ed esporla rendendola visibile ovunque.

41
00:02:49,310 --> 00:02:54,140
‫E in questo modo possiamo facilmente modificare il componente del movimento del proiettile dall'interno dei progetti.

42
00:02:54,150 --> 00:02:59,560
‫Ora lo costruirai nel costruttore del proiettile usando crea oggetto secondario predefinito.

43
00:02:59,570 --> 00:03:05,900
‫Non dimenticare di includere l'intestazione corretta e impostare la velocità iniziale e le variabili di velocità massima del componente di

44
00:03:05,900 --> 00:03:06,920
‫movimento del proiettile.

45
00:03:06,920 --> 00:03:12,650
‫Ora scegli i tuoi valori per questi e impostali nel costruttore e quindi prova il gioco.

46
00:03:12,650 --> 00:03:18,530
‫Regolerai la velocità iniziale e la velocità massima nel pannello dei dettagli selezionando il componente nel

47
00:03:18,530 --> 00:03:19,790
‫progetto del proiettile.

48
00:03:19,790 --> 00:03:25,910
‫E questo ti darà un po' di esperienza nella modifica dei parametri e nella sperimentazione come sviluppatore.

49
00:03:25,910 --> 00:03:30,080
‫Quindi metti in pausa il video e crea ora il componente di movimento del proiettile.

50
00:03:32,900 --> 00:03:33,180
‫Bene.

51
00:03:33,230 --> 00:03:39,380
‫Quindi sono qui nel proiettile H e probabilmente hai aggiunto il tuo componente nella sezione privata.

52
00:03:39,380 --> 00:03:41,780
‫Quindi, se l'hai fatto, hai l'istinto giusto.

53
00:03:41,780 --> 00:03:43,730
‫Faremo di questa una variabile privata.

54
00:03:43,730 --> 00:03:44,180
‫Va bene.

55
00:03:44,180 --> 00:03:48,040
‫In caso contrario, puoi spostarlo facilmente nella sezione privata, se lo desideri.

56
00:03:48,050 --> 00:03:54,560
‫Ora, questo sarà un componente di movimento del proiettile U, e questo è un puntatore.

57
00:03:54,560 --> 00:03:58,610
‫E possiamo semplicemente chiamare questo componente del movimento del proiettile.

58
00:03:58,760 --> 00:04:05,300
‫Ora, darò a questo una proprietà U e lo renderò semplicemente visibile ovunque.

59
00:04:06,020 --> 00:04:08,210
‫Ora, probabilmente gli hai assegnato una categoria.

60
00:04:08,210 --> 00:04:13,130
‫In caso contrario, va benissimo, ma gli darò una categoria e lo chiamerò movimento.

61
00:04:13,130 --> 00:04:15,650
‫Quindi abbiamo la componente di movimento del proiettile.

62
00:04:15,650 --> 00:04:20,660
‫Lascerò la dichiarazione in avanti e vedrò se riesco a farla franca con la compilazione

63
00:04:20,660 --> 00:04:24,290
‫ora qui in Projectile CP, includerò il file di intestazione.

64
00:04:24,290 --> 00:04:31,340
‫Quindi, tornando alla pagina della documentazione, copierò questo include e lo incollerò semplicemente qui in proiettile.

65
00:04:31,340 --> 00:04:34,250
‫E ora sono pronto per costruire il mio componente.

66
00:04:34,250 --> 00:04:42,440
‫Quindi dirò componente di movimento del proiettile e userò la creazione di un oggetto secondario predefinito

67
00:04:42,440 --> 00:04:48,140
‫e il tipo sarà il componente di movimento del proiettile.

68
00:04:48,470 --> 00:04:55,760
‫E per il testo, chiamerò semplicemente questo componente del movimento del proiettile proprio così.

69
00:04:55,760 --> 00:04:59,300
‫C'è il mio punto e virgola e ce l'abbiamo.

70
00:04:59,330 --> 00:05:07,850
‫Ora, come indicato, imposteremo il movimento del proiettile, la velocità massima del componente e darò a questo una velocità

71
00:05:07,850 --> 00:05:14,810
‫iniziale di, diciamo, 1300 F. Questo è qualcosa che sperimenteremo e attraverso i test di

72
00:05:14,810 --> 00:05:17,600
‫gioco lo adegueremo al giusto valore.

73
00:05:17,600 --> 00:05:25,490
‫Ora imposterò la velocità iniziale della componente di movimento del proiettile e la imposterò sullo stesso valore.

74
00:05:25,910 --> 00:05:31,190
‫Quindi la velocità iniziale sarà la velocità con cui il componente del proiettile si avvia.

75
00:05:31,190 --> 00:05:33,710
‫E, naturalmente, non supererà mai la velocità massima.

76
00:05:33,860 --> 00:05:35,750
‫Andiamo avanti e compiliamo questo.

77
00:05:36,050 --> 00:05:42,200
‫Ok, quindi ricevo un errore di compilazione e se salgo vedrò che fa riferimento al proiettile h.

78
00:05:42,350 --> 00:05:47,240
‫Quindi torniamo al proiettile H e dice Proiettile H 27.

79
00:05:47,240 --> 00:05:51,020
‫Si riferisce alla riga 27 e questa è questa riga proprio qui.

80
00:05:51,140 --> 00:05:56,090
‫E otteniamo che questo componente del movimento del proiettile non è un membro di un proiettile.

81
00:05:56,120 --> 00:05:59,990
‫Ricorda, questo era il tipo di errore che abbiamo visto quando non abbiamo inoltrato la dichiarazione.

82
00:05:59,990 --> 00:06:06,590
‫Quindi possiamo facilmente dichiararlo con la parola chiave class e compilare di nuovo e otteniamo una compilazione

83
00:06:06,590 --> 00:06:07,400
‫riuscita.

84
00:06:07,400 --> 00:06:12,830
‫Quindi, ancora una volta, questo è il modo in cui possiamo sapere se un particolare componente è incluso o meno per impostazione predefinita.

85
00:06:12,830 --> 00:06:17,270
‫E abbiamo visto che questo non è così con una compilazione riuscita.

86
00:06:17,270 --> 00:06:18,890
‫Torniamo nell'editor.

87
00:06:19,280 --> 00:06:26,030
‫Ok, quindi sono tornato nell'editor e ho intenzione di approfondire i progetti e gli attori ed ecco il proiettile BFP.

88
00:06:26,300 --> 00:06:28,190
‫Quindi qui proiettile NP.

89
00:06:28,190 --> 00:06:32,090
‫Ora vedo che il componente del movimento del proiettile è qui.

90
00:06:32,390 --> 00:06:38,870
‫E nel pannello dei dettagli, puoi vedere sotto proiettile che abbiamo la velocità iniziale e la velocità massima

91
00:06:38,870 --> 00:06:43,280
‫e puoi scorrere e vedere anche molti altri parametri che possiamo impostare.

92
00:06:43,400 --> 00:06:44,840
‫Quindi giochiamo alla prova questo.

93
00:06:44,840 --> 00:06:49,190
‫Ho intenzione di premere play e fare clic con il pulsante sinistro del mouse e dare un'occhiata.

94
00:06:49,190 --> 00:06:51,200
‫I nostri proiettili si stanno muovendo.

95
00:06:51,200 --> 00:06:55,550
‫Stanno volando nell'aria e si fermano una volta che hanno effettivamente colpito qualcosa.

96
00:06:55,550 --> 00:07:00,260
‫Ora, alla fine quello che vorremmo fare è farli esplodere e causare danni.

97
00:07:00,260 --> 00:07:02,780
‫Ma questo è un ottimo punto di partenza.

98
00:07:02,780 --> 00:07:08,420
‫Ora muoviamoci all'interno del raggio di tiro e vediamo se le torrette genereranno un proiettile.

99
00:07:08,420 --> 00:07:09,740
‫E ovviamente no.

100
00:07:09,740 --> 00:07:13,640
‫E il motivo è perché abbiamo quella sottoclasse TW di variabile.

101
00:07:13,640 --> 00:07:19,310
‫Quindi, se ti stai chiedendo perché le torrette non stavano effettivamente generando proiettili, potresti non averlo

102
00:07:19,310 --> 00:07:19,730
‫impostato.

103
00:07:19,730 --> 00:07:25,370
‫Quindi andiamo avanti ed entriamo negli stagni e nello stagno del segnale acustico, nella torretta e apriamo il progetto completo.

104
00:07:25,370 --> 00:07:29,960
‫Editor E abbiamo posizionato la classe del proiettile nella sezione del combattimento.

105
00:07:29,960 --> 00:07:37,790
‫Questa è la nostra sottoclasse, quindi se lo impostiamo su proiettile BP ora anche la nostra torretta dovrebbe iniziare a

106
00:07:37,790 --> 00:07:38,780
‫generare proiettili.

107
00:07:38,780 --> 00:07:41,960
‫Quindi entriamo nel raggio di tiro e il gioco è fatto.

108
00:07:41,960 --> 00:07:43,910
‫Ci sta sparando proiettili.

109
00:07:43,910 --> 00:07:46,550
‫Quindi sembra fantastico.

110
00:07:47,030 --> 00:07:48,950
‫Quindi ora abbiamo i proiettili.

111
00:07:48,950 --> 00:07:51,230
‫Quindi diamo un'occhiata al nostro piano di sezione.

112
00:07:51,230 --> 00:07:56,900
‫Abbiamo già creato un carro armato che può muoversi in tutto il mondo e ora stiamo gestendo l'input con i

113
00:07:56,900 --> 00:07:59,150
‫tasti WASD e i clic del mouse.

114
00:07:59,150 --> 00:08:05,510
‫Abbiamo creato una classe di torretta nemica, l'abbiamo chiamata torre in C++ e abbiamo aggiunto la funzionalità di fuoco

115
00:08:05,510 --> 00:08:06,590
‫con i proiettili.

116
00:08:06,590 --> 00:08:11,240
‫Ora dobbiamo gestire i danni alla salute e la distruzione in questo gioco.

117
00:08:11,240 --> 00:08:15,770
‫Quindi questi sono i nostri prossimi passi e quelli arriveranno nei video a venire.

118
00:08:15,770 --> 00:08:21,890
‫Quindi ora che abbiamo aggiunto una componente di movimento del proiettile, ora abbiamo i proiettili veri e propri.

119
00:08:21,890 --> 00:08:26,990
‫Ci vediamo nel prossimo video quando inizieremo a parlare di come possiamo far esplodere

120
00:08:26,990 --> 00:08:29,270
‫questi proiettili e causare danni.

121
00:08:29,690 --> 00:08:30,650
‫Ci vediamo presto.

