﻿1
00:00:04,170 --> 00:00:04,650
‫Ehi.

2
00:00:04,650 --> 00:00:05,580
‫Ben tornato.

3
00:00:05,610 --> 00:00:09,390
‫Ora sappiamo che dobbiamo ottenere il risultato del colpo sotto il cursore.

4
00:00:09,420 --> 00:00:14,070
‫Parleremo un po' di più di come funziona e cosa significa in questo video.

5
00:00:14,250 --> 00:00:20,520
‫Quindi il nostro obiettivo è ottenere i risultati dei risultati sotto il cursore e mostrare questa posizione, e possiamo farlo

6
00:00:20,520 --> 00:00:22,090
‫disegnando una sfera di debug.

7
00:00:22,110 --> 00:00:24,150
‫Impareremo anche come farlo.

8
00:00:24,180 --> 00:00:27,300
‫Quindi parliamo di qualcosa chiamato risultato di successo.

9
00:00:27,600 --> 00:00:30,550
‫Nei giochi vorranno spesso fare qualcosa del genere.

10
00:00:30,570 --> 00:00:32,520
‫Avremo un punto nello spazio.

11
00:00:32,550 --> 00:00:39,210
‫Chiameremo questo punto inizio e ha il vettore di tipo F e avremo una posizione finale.

12
00:00:39,240 --> 00:00:43,260
‫Questo sarà anche un punto nello spazio di tipo F vettore.

13
00:00:43,410 --> 00:00:48,720
‫Ora diciamo che vorremmo disegnare una linea invisibile dal punto iniziale al punto finale.

14
00:00:48,750 --> 00:00:54,450
‫E nel momento in cui tracciamo questa linea, vorremmo vedere se ci sono oggetti tra la posizione

15
00:00:54,450 --> 00:00:55,800
‫iniziale e quella finale.

16
00:00:56,280 --> 00:01:01,470
‫Ora, se ci sono, allora questa linea che stiamo disegnando nello spazio colpirà quell'oggetto.

17
00:01:01,470 --> 00:01:05,400
‫In superficie, quando ciò accade, lo chiamiamo un evento di successo.

18
00:01:05,430 --> 00:01:10,820
‫Ora, quando disegniamo una linea invisibile come questa, si chiama esecuzione di una traccia di linea.

19
00:01:10,830 --> 00:01:14,520
‫E quando colpiamo qualcosa, diciamo che abbiamo un colpo di traccia.

20
00:01:14,550 --> 00:01:21,240
‫Ora, se si colpisce qualcosa e si ottiene un evento hit, l'hit di traccia memorizza le informazioni in uno

21
00:01:21,240 --> 00:01:22,820
‫struct chiamato risultato hit.

22
00:01:22,830 --> 00:01:24,700
‫Il suo tipo è il risultato del colpo F.

23
00:01:24,720 --> 00:01:31,560
‫Ora la struttura dei risultati dell'hit F contiene variabili che memorizzano informazioni sull'evento hit, inclusa

24
00:01:31,560 --> 00:01:38,680
‫la posizione dell'hit come vettore f nello spazio e l'attore che abbiamo colpito, tra le altre informazioni.

25
00:01:38,700 --> 00:01:44,100
‫Ora, quando eseguiamo una traccia di linea, lo facciamo specificando un canale di collisione.

26
00:01:44,130 --> 00:01:48,390
‫Solitamente con le tracce di linea, scegliamo il canale chiamato visibilità.

27
00:01:48,510 --> 00:01:56,070
‫Esiste un enum chiamato E Collision Channel, e in questo enum c'è una costante enum chiamata

28
00:01:56,070 --> 00:01:57,030
‫visibilità XY.

29
00:01:57,180 --> 00:02:01,470
‫Questo è uno dei parametri che specifichiamo quando si esegue una traccia di linea.

30
00:02:01,740 --> 00:02:07,380
‫Ora, se specifichiamo il canale di visibilità, ciò significa che gli oggetti che sono impostati per bloccare il canale

31
00:02:07,380 --> 00:02:10,980
‫di visibilità nelle loro impostazioni di collisione registreranno gli eventi hit.

32
00:02:11,130 --> 00:02:16,350
‫Tutti gli oggetti che non sono impostati per bloccare il canale di visibilità non genereranno eventi hit.

33
00:02:16,380 --> 00:02:19,350
‫Ora vorremmo il risultato della traccia sotto il cursore.

34
00:02:19,590 --> 00:02:23,040
‫Immagina di avere lo schermo qui ed ecco ora il nostro cursore.

35
00:02:23,040 --> 00:02:28,620
‫Sulla punta del nostro cursore, abbiamo un punto sullo schermo in cui utilizziamo la funzione per ottenere il risultato del colpo

36
00:02:28,620 --> 00:02:29,730
‫sotto il cursore.

37
00:02:29,760 --> 00:02:35,040
‫Quello che succede è che abbiamo la nostra fotocamera e potrebbe vedere alcuni oggetti nel mondo, come il pavimento qui.

38
00:02:35,040 --> 00:02:40,950
‫E stiamo eseguendo una traccia di linea dalla telecamera nel punto sullo schermo corrispondente alla posizione del nostro

39
00:02:40,950 --> 00:02:45,090
‫cursore, e stiamo riprendendo la traccia di linea direttamente nel mondo.

40
00:02:45,090 --> 00:02:51,570
‫E se colpiamo qualcosa, genereremo un evento di successo e memorizzeremo le informazioni in una struttura del risultato di successo.

41
00:02:52,080 --> 00:02:54,470
‫Quindi scopriamo come possiamo farlo.

42
00:02:54,480 --> 00:03:01,560
‫Sono qui in Tank CP e quello che mi piacerebbe fare è ottenere il risultato del colpo sotto il cursore ogni fotogramma, il che significa che

43
00:03:01,560 --> 00:03:03,240
‫abbiamo bisogno della funzione tick.

44
00:03:03,240 --> 00:03:08,160
‫Quindi, di nuovo, torniamo alla base e troviamo qui la nostra funzione tick.

45
00:03:08,190 --> 00:03:14,100
‫Ora non lo stiamo usando per nulla nel pedone base, quindi possiamo spostare questa funzione nella classe del carro armato proprio come

46
00:03:14,100 --> 00:03:15,570
‫abbiamo fatto con Begin Play.

47
00:03:15,570 --> 00:03:21,600
‫Quindi evidenzierò la dichiarazione della funzione insieme al relativo commento e la copierò.

48
00:03:21,600 --> 00:03:28,590
‫E dopo eliminerò l'intera sezione, pubblica e tutto, e poi tornerò in Tank H e qui

49
00:03:28,590 --> 00:03:33,150
‫nella sezione pubblica incollerò la dichiarazione della funzione tick.

50
00:03:33,150 --> 00:03:37,620
‫Ora non lo stiamo usando nel pedone base, quindi rimuoverò la funzione tick da base pont.

51
00:03:37,680 --> 00:03:40,710
‫CP Ora è passato dal pedone di base.

52
00:03:41,340 --> 00:03:47,880
‫Ora abbiamo qui dichiarato l'intento, ma dobbiamo anche definire la funzione in tank.

53
00:03:48,060 --> 00:03:54,180
‫CP Lo farò qui nel serbatoio DHCP, appena sotto il componente di input del giocatore di configurazione.

54
00:03:54,180 --> 00:03:56,400
‫Quindi diremo void tick.

55
00:03:57,340 --> 00:03:59,620
‫Ci vuole un galleggiante chiamato Delta Time.

56
00:04:00,940 --> 00:04:02,350
‫E c'è il nostro corpo.

57
00:04:02,380 --> 00:04:09,180
‫Ora di nuovo, abbiamo bisogno di un tank appena prima della funzione tick, insieme all'operatore di risoluzione dell'oscilloscopio.

58
00:04:09,190 --> 00:04:14,530
‫E dobbiamo anche chiamare super tick and pass in Delta time.

59
00:04:16,450 --> 00:04:19,240
‫Quindi ora abbiamo il segno di spunta sulla classe del carro armato.

60
00:04:19,450 --> 00:04:23,560
‫Quello che vogliamo fare è ottenere i risultati del colpo sotto il cursore.

61
00:04:23,710 --> 00:04:25,450
‫Quindi ecco come lo facciamo.

62
00:04:25,480 --> 00:04:31,260
‫La funzione che useremo esiste sul controller del giocatore chiamata get hit result sotto il cursore.

63
00:04:31,270 --> 00:04:32,800
‫Abbiamo parlato di questo.

64
00:04:32,980 --> 00:04:34,530
‫Ora ecco la sintassi.

65
00:04:34,540 --> 00:04:36,160
‫Richiede un canale di traccia.

66
00:04:36,190 --> 00:04:40,660
‫Ricorda, dobbiamo specificare un canale di traccia e utilizzeremo la visibilità.

67
00:04:40,840 --> 00:04:43,690
‫Ora abbiamo due parametri di input aggiuntivi.

68
00:04:43,720 --> 00:04:46,720
‫Il primo è un bool chiamato B trace complex.

69
00:04:46,750 --> 00:04:49,120
‫Parleremo di cosa significa tra un secondo.

70
00:04:49,210 --> 00:04:52,270
‫E il terzo parametro di input è un risultato F hit.

71
00:04:52,390 --> 00:04:57,820
‫Ora farò clic su F hit result solo per vedere questo tipo qui nella documentazione.

72
00:04:58,480 --> 00:05:01,960
‫E se scorro verso il basso, vedremo alcune delle variabili.

73
00:05:01,990 --> 00:05:06,670
‫Uno di loro si chiama attore e la sua descrizione dice Attore colpito dalla traccia.

74
00:05:06,700 --> 00:05:13,510
‫Abbiamo anche questo colpo di blocco B, che indica se questo colpo è stato il risultato di una collisione di blocco.

75
00:05:13,750 --> 00:05:17,770
‫Ora, tra le altre variabili, abbiamo cose come il punto di impatto.

76
00:05:18,010 --> 00:05:22,000
‫Questa è la posizione nello spazio in cui abbiamo effettivamente colpito qualcosa.

77
00:05:22,600 --> 00:05:26,150
‫Allora perché non andiamo avanti e proviamo a chiamare questa funzione?

78
00:05:26,170 --> 00:05:32,170
‫Per prima cosa vogliamo il nostro giocatore, controller e grazie a quello che abbiamo fatto qui e iniziare a giocare,

79
00:05:32,170 --> 00:05:33,370
‫abbiamo giocatore, controller, ref.

80
00:05:33,400 --> 00:05:38,770
‫Ora la prima cosa che dovremmo fare è controllare se il riferimento del controller del giocatore è valido.

81
00:05:39,100 --> 00:05:42,140
‫Possiamo sempre passare un puntatore in un'istruzione if.

82
00:05:42,160 --> 00:05:47,270
‫Restituirà true se il puntatore stesso non è un puntatore nullo.

83
00:05:47,290 --> 00:05:52,930
‫Se è un puntatore null, restituirà false in un'istruzione if e non raggiungeremo mai l'interno

84
00:05:52,930 --> 00:05:53,920
‫dell'istruzione if.

85
00:05:54,070 --> 00:05:59,740
‫È sempre una buona idea controllare i nostri puntatori e assicurarsi che non siano nulli prima di usarli.

86
00:06:00,010 --> 00:06:04,960
‫Ora otterremo il nostro giocatore, il riferimento del controller e useremo l'operatore freccia per

87
00:06:04,960 --> 00:06:08,950
‫chiamare la funzione, ottenere il risultato del colpo sotto il cursore.

88
00:06:09,100 --> 00:06:12,670
‫Ora possiamo vedere con il pop-up che abbiamo tre parametri di input.

89
00:06:12,850 --> 00:06:14,650
‫Il primo è il canale di traccia.

90
00:06:14,950 --> 00:06:22,030
‫Utilizzeremo EA Collision Channel e se digitiamo due due punti, otteniamo un menu a discesa che ci mostra tutte

91
00:06:22,030 --> 00:06:26,350
‫le diverse costanti di enum nell'enum di EA Collision Channel.

92
00:06:26,530 --> 00:06:34,540
‫Vogliamo usare la visibilità, quindi digiteremo visibilità XY per specificare che stiamo usando il canale di

93
00:06:34,540 --> 00:06:35,230
‫visibilità.

94
00:06:35,440 --> 00:06:41,470
‫Ora il prossimo parametro è chiamato B Trace Complex e passeremo false in questo.

95
00:06:41,500 --> 00:06:44,590
‫Ora discuteremo tra qualche minuto cosa significa.

96
00:06:44,590 --> 00:06:46,900
‫Ma per ora useremo false.

97
00:06:47,110 --> 00:06:50,300
‫Ora per il terzo parametro, abbiamo bisogno di un risultato positivo.

98
00:06:50,320 --> 00:06:53,140
‫Questa è una struttura del risultato del colpo di tipo F.

99
00:06:53,170 --> 00:06:59,500
‫Ora, se passi il mouse su questo, vedrai che il risultato del colpo F viene passato come riferimento come

100
00:06:59,500 --> 00:07:02,740
‫indicato dall'operatore di riferimento che sembra una e commerciale.

101
00:07:02,890 --> 00:07:08,320
‫Ora, di solito quando passi qualcosa come riferimento, è un riferimento di costo, il che significa che la funzione non

102
00:07:08,320 --> 00:07:09,730
‫sarà in grado di cambiarlo.

103
00:07:09,730 --> 00:07:13,870
‫Ma qui stiamo passando un risultato F hit come riferimento non const.

104
00:07:14,110 --> 00:07:20,120
‫Questo è generalmente un suggerimento che la funzione è progettata per modificare direttamente questo parametro di input.

105
00:07:20,140 --> 00:07:27,730
‫Quello che farà ottenere il risultato dell'hit sotto il cursore è riempire quelle variabili nel risultato dell'hit con informazioni

106
00:07:27,730 --> 00:07:29,260
‫sul risultato dell'hit.

107
00:07:29,290 --> 00:07:32,710
‫Ciò significa che dobbiamo passare uno di questi risultati di f hit in.

108
00:07:32,740 --> 00:07:37,540
‫Creeremo una variabile locale qui nel controllo if del risultato di tipo F hit.

109
00:07:38,380 --> 00:07:44,650
‫E possiamo chiamare questo risultato hit e possiamo semplicemente passare questo N come terzo parametro di input.

110
00:07:44,830 --> 00:07:50,320
‫Ora, dopo aver chiamato questa funzione, il risultato del risultato verrà riempito con i dati su questa traccia

111
00:07:50,320 --> 00:07:51,180
‫di linea.

112
00:07:51,190 --> 00:08:00,040
‫Ad esempio, possiamo accedere all'attore punto hit risultato per ottenere l'attore che è stato colpito o punto impatto punto per ottenere il punto nello

113
00:08:00,040 --> 00:08:03,430
‫spazio in cui si è verificato l'evento hit.

114
00:08:03,580 --> 00:08:08,470
‫Quindi il risultato del successo è quello che useremo per ottenere informazioni sulla traccia della linea.

115
00:08:08,860 --> 00:08:13,450
‫Ora spesso è bello poter vedere il risultato di una traccia di linea.

116
00:08:13,450 --> 00:08:18,010
‫Possiamo facilmente visualizzare il risultato di una traccia di linea disegnando una sfera di debug.

117
00:08:18,340 --> 00:08:24,580
‫Le sfere di debug sono forme semplici che disegniamo nello spazio e sono ottime per mostrare una posizione e

118
00:08:24,580 --> 00:08:26,380
‫le usiamo durante il debug.

119
00:08:26,380 --> 00:08:29,380
‫In realtà non utilizziamo sfere di debug in un gioco a turni.

120
00:08:29,410 --> 00:08:32,150
‫Quindi vediamo come possiamo disegnare una di queste sfere di debug.

121
00:08:32,170 --> 00:08:36,430
‫Ora ecco la documentazione per una funzione chiamata draw debug sphere.

122
00:08:36,430 --> 00:08:38,800
‫Esiste negli helper di debug di draw.

123
00:08:39,850 --> 00:08:45,160
‫Quindi possiamo copiare questa intestazione e includerla ovunque vogliamo chiamare draw debug sphere.

124
00:08:45,190 --> 00:08:47,220
‫Ora guarda tutti i parametri di input.

125
00:08:47,230 --> 00:08:52,240
‫Innanzitutto, ci vuole un mondo in questo modo sa in quale mondo attirare la sfera.

126
00:08:52,270 --> 00:08:57,100
‫Ci vuole un vettore F per il centro della sfera e un galleggiante per il raggio.

127
00:08:57,130 --> 00:09:00,800
‫Ci vuole un N 32 per il numero di segmenti per quella sfera.

128
00:09:00,820 --> 00:09:04,810
‫Più segmenti ci sono, più la sfera assume un colore F.

129
00:09:04,840 --> 00:09:08,350
‫In questo modo sa in quale colore disegnare questa sfera.

130
00:09:08,380 --> 00:09:11,080
‫Vuole sapere se vuoi linee persistenti.

131
00:09:11,080 --> 00:09:15,220
‫In altre parole, le linee dovrebbero scomparire immediatamente o dovrebbero persistere?

132
00:09:15,220 --> 00:09:18,760
‫Se persistono, vuole conoscere la vita della sfera.

133
00:09:18,760 --> 00:09:20,910
‫Quando dovrebbe smettere di disegnare la sfera?

134
00:09:20,920 --> 00:09:25,660
‫Se non disegni linee persistenti, supponi che desideri disegnarle per un singolo fotogramma,

135
00:09:25,660 --> 00:09:27,880
‫quindi passeresti quello negativo come durata.

136
00:09:27,910 --> 00:09:34,240
‫Ora gli ultimi due parametri sono opzionali, quindi lo terremo semplice discutendo solo dei primi

137
00:09:34,240 --> 00:09:35,110
‫sette parametri.

138
00:09:35,110 --> 00:09:36,520
‫Vediamo come funziona.

139
00:09:36,730 --> 00:09:42,100
‫Ora disegnerò una sfera di debug in alto, includerò gli helper di debug del disegno.

140
00:09:42,850 --> 00:09:46,630
‫È qui che viene dichiarata questa funzione della sfera di debug di disegno.

141
00:09:46,660 --> 00:09:52,900
‫Ora scendiamo per iniziare a giocare e semplicemente disegna una sfera di debug per vedere come funziona.

142
00:09:52,900 --> 00:09:58,030
‫Quindi chiamerò draw debug sphere e il file.

143
00:09:58,110 --> 00:10:00,780
‫Il primo parametro di input è un nuovo mondo.

144
00:10:01,110 --> 00:10:09,420
‫Possiamo ottenere il nostro mondo in qualsiasi momento chiamando Get World, Get World Restituisce un nuovo puntatore del mondo al nostro

145
00:10:09,420 --> 00:10:10,500
‫mondo attuale.

146
00:10:10,500 --> 00:10:12,930
‫Quindi soddisferà il primo input.

147
00:10:13,260 --> 00:10:16,420
‫Successivamente, abbiamo bisogno di un vettore f per il centro della sfera.

148
00:10:16,440 --> 00:10:22,380
‫Ora chiamiamo questo e iniziamo a suonare, quindi posso semplicemente chiamare la posizione dell'attore e questo otterrà

149
00:10:22,380 --> 00:10:24,130
‫la posizione del nostro laghetto.

150
00:10:24,150 --> 00:10:26,400
‫Dato che siamo nella classe dei carri armati.

151
00:10:26,640 --> 00:10:29,250
‫Ora alzerò un po' la sfera.

152
00:10:29,250 --> 00:10:41,380
‫Quindi aggiungerò un vettore F con zero punto F per x zero punto F per Y e dico 200 F per Z.

153
00:10:41,400 --> 00:10:45,120
‫Ora inserirò questi parametri di input ciascuno sulla propria riga.

154
00:10:45,120 --> 00:10:48,300
‫Quindi è chiaro cosa stiamo passando per ogni input.

155
00:10:48,330 --> 00:10:55,740
‫Il secondo input sta ottenendo questa espressione, che è la posizione dell'attore, più un vettore che punta verso l'alto con

156
00:10:55,740 --> 00:10:57,230
‫una lunghezza di 200.

157
00:10:57,240 --> 00:11:04,260
‫La somma di questi due vettori insieme mi darà la posizione del serbatoio sollevato sull'asse Z di 200

158
00:11:04,260 --> 00:11:04,950
‫unità.

159
00:11:04,980 --> 00:11:09,600
‫Ora il prossimo parametro di input, sarà il raggio della sfera.

160
00:11:09,870 --> 00:11:16,970
‫Sceglierò 100 F solo così possiamo vedere che aspetto ha una sfera di debug con un raggio di 100.

161
00:11:16,980 --> 00:11:18,900
‫Il prossimo è il numero di segmenti.

162
00:11:18,990 --> 00:11:20,470
‫scelgo 12

163
00:11:20,490 --> 00:11:22,130
‫Vedremo come sarà.

164
00:11:22,140 --> 00:11:29,640
‫Ora per un colore F, esiste una classe di colore F e ha molti colori integrati come il rosso.

165
00:11:29,850 --> 00:11:34,410
‫Ora per il booleano chiamato B linee persistenti, sceglierò true.

166
00:11:34,410 --> 00:11:38,280
‫E per il prossimo parametro di input abbiamo l'avviso di durata.

167
00:11:38,280 --> 00:11:40,850
‫Ha un valore predefinito di uno negativo.

168
00:11:40,860 --> 00:11:44,610
‫Ciò significa che per impostazione predefinita disegnerà la sfera di debug per un singolo frame.

169
00:11:44,610 --> 00:11:52,770
‫Ma passerò in 30 F in modo da ottenere la sfera per 30 secondi e posso omettere gli ultimi due parametri.

170
00:11:52,770 --> 00:11:55,670
‫Quindi ecco la nostra chiamata di funzione per disegnare la sfera di debug.

171
00:11:55,680 --> 00:11:58,260
‫Compiliamo questo e vediamo come appare.

172
00:11:58,710 --> 00:12:00,210
‫Ok, quindi sono tornato nell'editor.

173
00:12:00,210 --> 00:12:03,750
‫Apro una seconda finestra in modo da poterla vedere a schermo intero.

174
00:12:03,750 --> 00:12:10,650
‫Posso andare alle porte di visualizzazione della finestra e selezionare Viewport due e ora vedo questa seconda finestra.

175
00:12:10,680 --> 00:12:15,300
‫Potrebbe non essere a schermo intero quando si apre, ma puoi sempre massimizzarlo.

176
00:12:15,330 --> 00:12:18,570
‫Ora da qui posso giocare con alt p.

177
00:12:18,600 --> 00:12:19,770
‫Ora controlla questo.

178
00:12:19,770 --> 00:12:21,300
‫Ecco la nostra sfera di debug.

179
00:12:21,330 --> 00:12:23,610
‫Notare che non è perfettamente rotondo.

180
00:12:23,610 --> 00:12:26,570
‫Abbiamo scelto 12 per il numero di segmenti.

181
00:12:26,580 --> 00:12:30,960
‫Più segmenti scegli, più linee saranno necessarie per disegnare la sfera.

182
00:12:30,990 --> 00:12:34,380
‫Ora, questa è una sfera con un raggio di 100.

183
00:12:34,380 --> 00:12:40,170
‫È abbastanza grande e il centro della sfera è nella posizione del serbatoio, più 200 unità

184
00:12:40,170 --> 00:12:40,740
‫nell'aria.

185
00:12:40,740 --> 00:12:43,950
‫Quindi è così che possiamo disegnare sfere di debug.

186
00:12:44,130 --> 00:12:49,890
‫Quindi la tua sfida è disegnare una sfera di debug usando il risultato della traccia sotto il nostro cursore.

187
00:12:49,890 --> 00:12:55,140
‫Quindi disegna una sfera di debug nella nostra nuova istruzione if in cui stiamo controllando se il riferimento del controller del giocatore non

188
00:12:55,140 --> 00:12:55,680
‫è nullo.

189
00:12:55,710 --> 00:13:02,520
‫Ora usando il nostro risultato del colpo, ottieni il punto di impatto dal risultato del colpo e usalo come Center for

190
00:13:02,520 --> 00:13:03,240
‫the Sphere.

191
00:13:03,390 --> 00:13:09,510
‫Ora per il parametro di input delle righe persistenti usa false e per la durata usa quello negativo.

192
00:13:09,510 --> 00:13:14,250
‫E questo risulterà nel disegnare la sfera per un singolo fotogramma, il che va bene perché lo

193
00:13:14,250 --> 00:13:16,530
‫chiamiamo ogni fotogramma all'interno della funzione tic.

194
00:13:16,530 --> 00:13:20,490
‫Quindi metti in pausa il video e disegna la sfera di debug nella funzione tick.

195
00:13:23,240 --> 00:13:23,570
‫Bene.

196
00:13:23,570 --> 00:13:24,920
‫Quindi sono tornato qui a Tank.

197
00:13:26,180 --> 00:13:32,480
‫Ora ho questa chiamata della funzione draw debug sphere qui e inizio a giocare così posso andare avanti e copiarlo

198
00:13:32,480 --> 00:13:38,450
‫e rimuoverlo semplicemente dall'inizio del gioco e torneremo in tick qui all'interno della nostra istruzione if e sono

199
00:13:38,450 --> 00:13:42,380
‫solo lo incolleremo qui e cambieremo alcuni dei parametri di input.

200
00:13:42,380 --> 00:13:46,490
‫Per prima cosa, stiamo cambiando la posizione del centro della sfera.

201
00:13:46,490 --> 00:13:47,960
‫Utilizzeremo il risultato del successo.

202
00:13:47,960 --> 00:13:51,200
‫Quindi dirò il punto di impatto del punto del risultato colpito.

203
00:13:51,440 --> 00:13:54,440
‫Ora per il raggio, vorrei renderlo un po' più piccolo.

204
00:13:54,440 --> 00:13:56,510
‫Facciamo circa 25.

205
00:13:56,810 --> 00:13:57,320
‫Va bene.

206
00:13:57,320 --> 00:13:59,360
‫Se non l'hai fatto tu, lo sto solo facendo.

207
00:13:59,360 --> 00:14:01,280
‫Quindi la sfera non è così grande.

208
00:14:01,280 --> 00:14:06,230
‫Ora, il penultimo parametro che stiamo passando è per le righe persistenti.

209
00:14:06,230 --> 00:14:12,500
‫Passerò in falso e per la durata invece di 30 secondi userò un punto F

210
00:14:12,500 --> 00:14:13,190
‫negativo.

211
00:14:13,190 --> 00:14:18,920
‫In questo modo otterremo una sfera per un singolo fotogramma, il che va bene, ancora una volta, lo chiameremo

212
00:14:18,920 --> 00:14:21,560
‫nella funzione tick, quindi lo chiameremo ogni fotogramma.

213
00:14:21,560 --> 00:14:23,300
‫Andiamo avanti e compiliamo questo.

214
00:14:23,750 --> 00:14:25,130
‫Ora, di nuovo nell'editor.

215
00:14:25,130 --> 00:14:28,010
‫Se premo play ora, dai un'occhiata.

216
00:14:28,040 --> 00:14:34,280
‫Ho una sfera di debug e viene disegnata nel punto di impatto per la traccia della linea sotto il cursore.

217
00:14:34,280 --> 00:14:42,590
‫Ora possiamo spostarlo sui muri e su altri oggetti e la traccia colpisce questi oggetti perché sono impostati per

218
00:14:42,590 --> 00:14:44,810
‫bloccare il canale di visibilità.

219
00:14:44,840 --> 00:14:46,460
‫Abbastanza fantastico in questo momento.

220
00:14:46,460 --> 00:14:50,630
‫Ho promesso che avremmo discusso del tracciamento complesso rispetto al tracciamento semplice.

221
00:14:50,660 --> 00:14:53,510
‫Ti mostrerò qualcosa mentre giochiamo.

222
00:14:53,510 --> 00:14:57,770
‫Facciamo clic nella finestra in modo da avere il controllo sul palmo della mano.

223
00:14:57,770 --> 00:15:02,360
‫Ora premi il tasto tilde e digita il comando della console mostra collisione.

224
00:15:02,360 --> 00:15:07,610
‫Ora potrebbe non essere così facile da vedere sul mio schermo, ma puoi sicuramente vederlo sul tuo schermo.

225
00:15:07,610 --> 00:15:10,880
‫Notare la collisione per le nostre pedine.

226
00:15:10,910 --> 00:15:18,020
‫Non solo possiamo vedere la capsula, ma possiamo vedere questo volume di collisione attorno al nostro carro armato e alle maglie della torretta.

227
00:15:18,020 --> 00:15:20,000
‫Questa è una semplice collisione.

228
00:15:20,090 --> 00:15:24,050
‫Lascia che ti mostri molto velocemente dove possiamo vedere la semplice collisione.

229
00:15:24,080 --> 00:15:31,250
‫Entrerò in asset e mesh e se faccio doppio clic, diciamo, sulla base del serbatoio qui, osserveremo

230
00:15:31,250 --> 00:15:32,690
‫la complessa collisione.

231
00:15:32,690 --> 00:15:39,500
‫Se faccio clic su questa icona mostra qui in alto e seleziono collisione complessa, posso vedere tutti i poligoni

232
00:15:39,500 --> 00:15:42,410
‫nella collisione complessa e ce ne sono molti.

233
00:15:42,440 --> 00:15:49,370
‫Se faccio nuovamente clic sull'icona mostra e questa volta spunta la casella accanto a Collisione semplice, nota che c'è un

234
00:15:49,370 --> 00:15:51,020
‫altro volume di collisione.

235
00:15:51,020 --> 00:15:56,780
‫Questo è chiamato scafo di collisione e ha una geometria molto inferiore.

236
00:15:56,780 --> 00:16:00,950
‫C'è un numero minore di poligoni con questo volume di collisione.

237
00:16:00,950 --> 00:16:06,230
‫Questo è ciò che il motore fisico utilizza per rilevare la sovrapposizione negli eventi di successo.

238
00:16:06,230 --> 00:16:11,360
‫Se utilizzasse la collisione complessa, richiederebbe molti più calcoli.

239
00:16:11,360 --> 00:16:17,780
‫Questo è il motivo per cui abbiamo volumi di collisione semplici, quindi è molto meglio per le prestazioni ogni volta

240
00:16:17,780 --> 00:16:23,270
‫che si esegue una traccia di linea se si traccia per collisione semplice anziché per collisione complessa.

241
00:16:23,870 --> 00:16:27,200
‫Quindi ora abbiamo il risultato del colpo sotto il cursore.

242
00:16:27,290 --> 00:16:32,480
‫Ci è voluto del lavoro per arrivarci, ma ora ce l'abbiamo e lo abbiamo dimostrato mostrando questa posizione con

243
00:16:32,480 --> 00:16:33,650
‫una sfera di debug.

244
00:16:33,650 --> 00:16:36,800
‫Questo è un bel modo per confermare che il nostro hit di traccia funziona.

245
00:16:36,800 --> 00:16:42,650
‫Quindi ora che sappiamo che sta funzionando, possiamo usare quella posizione per ruotare la torretta sul nostro carro armato.

246
00:16:42,980 --> 00:16:45,260
‫E lo faremo nel prossimo video.

247
00:16:45,440 --> 00:16:46,520
‫Ci vediamo presto.

