﻿1
00:00:04,890 --> 00:00:05,790
‫Ciao e Benvenuto.

2
00:00:05,790 --> 00:00:12,090
‫In questa lezione impareremo gli oggetti e come possiamo usare le funzionalità sugli oggetti e

3
00:00:12,090 --> 00:00:16,110
‫sui loro dati per iniziare a creare programmi interessanti.

4
00:00:16,110 --> 00:00:17,430
‫Immergiamoci.

5
00:00:18,940 --> 00:00:22,690
‫Quindi iniziamo questa lezione introducendo un nuovo concetto.

6
00:00:22,690 --> 00:00:27,400
‫Il concetto di oggetti è assolutamente vitale per molti linguaggi di programmazione.

7
00:00:28,030 --> 00:00:35,230
‫Quindi un oggetto è essenzialmente un qualcosa in cui vuoi rappresentare una cosa, qualcosa come in un gioco

8
00:00:35,230 --> 00:00:37,050
‫potresti avere un avventuriero.

9
00:00:37,060 --> 00:00:44,710
‫È un oggetto nel tuo mondo e potrebbe avere dei dati che rappresentano ciò che è.

10
00:00:44,980 --> 00:00:50,020
‫Cose come i suoi punti esperienza, per esempio, o forse il suo livello.

11
00:00:50,020 --> 00:00:51,430
‫È un avventuriero di livello due.

12
00:00:51,430 --> 00:00:55,000
‫Cose del genere sono i dati che compongono un avventuriero.

13
00:00:55,510 --> 00:00:57,310
‫Ma non è tutto ciò che è un avventuriero.

14
00:00:57,550 --> 00:01:04,990
‫Un avventuriero ha anche alcune funzionalità, come la capacità di lanciare frecce, come saltare e

15
00:01:04,990 --> 00:01:06,400
‫così via.

16
00:01:07,270 --> 00:01:09,370
‫Ci sono altre cose che possono essere oggetti, però.

17
00:01:09,400 --> 00:01:15,700
‫Ad esempio, possiamo rappresentare cose nel mondo reale, nel computer, come il giocatore, e potremmo memorizzare proprietà

18
00:01:15,700 --> 00:01:20,770
‫rilevanti per il giocatore, cose come il giocatore sta usando un controller?

19
00:01:21,370 --> 00:01:23,930
‫Il giocatore è il numero uno o il numero due?

20
00:01:23,950 --> 00:01:29,380
‫Quei tipi di dati e le relative funzionalità come ottenere i loro input correnti.

21
00:01:29,890 --> 00:01:35,200
‫Stanno tenendo premuta la barra spaziatrice, ad esempio, ottengono il livello di abilità del giocatore e quindi

22
00:01:35,200 --> 00:01:38,440
‫puoi avere oggetti completamente astratti, cose come un elenco.

23
00:01:38,740 --> 00:01:42,010
‫Quindi potresti avere un elenco con gli elementi uno, due, tre, quattro.

24
00:01:42,010 --> 00:01:44,430
‫Ed è o forse potrebbe contenere qualsiasi oggetto che ti piace.

25
00:01:44,440 --> 00:01:50,530
‫I dati potrebbero cambiare, ma potrebbero anche avere alcune funzionalità, come rimuovere l'ultimo elemento dall'elenco o

26
00:01:50,530 --> 00:01:52,420
‫aggiungere alla fine dell'elenco.

27
00:01:52,780 --> 00:01:55,120
‫Quindi puoi vedere che gli oggetti sono molto, molto flessibili.

28
00:01:55,120 --> 00:01:58,390
‫Possono essere usati per rappresentare una miriade di cose diverse.

29
00:01:58,810 --> 00:02:05,230
‫E noterai che la funzionalità nella parte inferiore di questi oggetti è in realtà ciò che sono quei

30
00:02:05,230 --> 00:02:08,320
‫nodi o quanti nodi sono molti in Blueprint.

31
00:02:08,410 --> 00:02:14,830
‫Quindi iniziano a ottenere un po' di mappatura tra gli oggetti e la funzionalità.

32
00:02:15,490 --> 00:02:15,760
‫Bene.

33
00:02:15,760 --> 00:02:19,630
‫Quindi abbiamo introdotto una serie di nuovi concetti che ricapitoliamo leggermente.

34
00:02:19,900 --> 00:02:24,310
‫Quindi abbiamo detto che gli oggetti sono raccolte di dati e funzionalità.

35
00:02:25,030 --> 00:02:28,870
‫Quello che forse non ci siamo resi conto è che gli attori sono in realtà oggetti.

36
00:02:28,870 --> 00:02:34,660
‫Gli attori sono oggetti che possono entrare in un livello e puoi vederlo se vai nel tuo livello, selezioni il

37
00:02:34,660 --> 00:02:39,820
‫cubo, puoi vedere che c'è un sacco di dettagli nei dettagli, dipingi un carico di dati.

38
00:02:39,820 --> 00:02:45,130
‫E come vedremo tra poco, c'è anche un carico di funzionalità nella forma del nodo e nel progetto.

39
00:02:46,120 --> 00:02:47,320
‫Poi ci sono i componenti.

40
00:02:47,350 --> 00:02:50,800
‫Ora i componenti non sono entrati nei dettagli prima, ma eccoli qui.

41
00:02:51,070 --> 00:02:56,980
‫Sono oggetti che possono andare su un attore, mentre gli attori vanno sul livello, i componenti vanno su un attore

42
00:02:56,980 --> 00:02:57,460
‫stesso.

43
00:02:57,730 --> 00:03:03,190
‫Quindi, con il Cubo selezionato, puoi vedere nella parte superiore del riquadro dei dettagli che è presente questo componente

44
00:03:03,190 --> 00:03:03,910
‫mesh statico.

45
00:03:04,570 --> 00:03:11,050
‫Se fai effettivamente clic su quello, vedrai che il riquadro dei dettagli ottiene un insieme limitato di dettagli.

46
00:03:11,050 --> 00:03:19,180
‫Mostra non tutte le proprietà disponibili sull'attore Cubo, ma solo il sottoinsieme di proprietà che appartengono

47
00:03:19,180 --> 00:03:25,780
‫al componente mesh statico, che è fondamentalmente il componente responsabile di dirci come

48
00:03:25,780 --> 00:03:27,790
‫disegnare un cubo.

49
00:03:28,480 --> 00:03:34,270
‫Ora, questi oggetti possono spesso avere molti più dati di questo, e ciò significa che possono

50
00:03:34,270 --> 00:03:40,360
‫diventare piuttosto pesanti da manipolare dal tuo computer e sicuramente se deve copiare questi oggetti in giro.

51
00:03:40,810 --> 00:03:46,990
‫Quindi, invece di farlo, utilizziamo una struttura intelligente chiamata riferimento che è essenzialmente solo un

52
00:03:46,990 --> 00:03:53,800
‫indirizzo o dove posso trovare questo oggetto nella memoria del computer in modo da non dover spostare

53
00:03:53,800 --> 00:03:55,450
‫l'oggetto tutto il tempo?

54
00:03:55,810 --> 00:04:01,750
‫Tratteremo un po' di più su come funziona effettivamente in memoria quando arriviamo a C++, ma per ora è sufficiente

55
00:04:01,750 --> 00:04:03,910
‫sapere che è solo un indirizzo.

56
00:04:04,870 --> 00:04:09,640
‫Quindi, cosa possiamo fare, ad esempio, tuffiamoci in Unreal.

57
00:04:09,640 --> 00:04:17,110
‫Se fossimo nel nostro livello principale e volessimo usare alcune funzionalità sul nostro cubo, allora quello che posso fare è selezionare il cubo nella scena

58
00:04:17,110 --> 00:04:22,030
‫e poi posso andare al mio progetto di livello e fare clic con il tasto destro,

59
00:04:22,390 --> 00:04:27,490
‫quindi posso fare clic su un riferimento di creazione a Cube e questo crea un nuovo nodo.

60
00:04:28,000 --> 00:04:29,170
‫Ora cosa sta facendo?

61
00:04:29,170 --> 00:04:32,980
‫Bene, in pratica questo ci sta dicendo che questo è l'indirizzo del Cubo.

62
00:04:32,980 --> 00:04:35,740
‫Se vuoi fare qualcosa con il cubo, ecco dove lo trovi.

63
00:04:36,250 --> 00:04:41,230
‫Quello che succede in Blueprint quando esegui il gioco è che andrà a trovare quel cubo.

64
00:04:41,230 --> 00:04:47,080
‫E quindi puoi porre domande o utilizzare funzionalità sul cubo, ad esempio dicendo, Ehi, dove risiede il

65
00:04:47,080 --> 00:04:48,640
‫tuo componente mesh statico?

66
00:04:48,820 --> 00:04:51,220
‫E va, ok, i componenti della rete statica laggiù.

67
00:04:51,220 --> 00:04:56,260
‫Quindi andiamo a trovare il componente mesh statico e poi possiamo porre domande su questo e loro possono dire, Ehi,

68
00:04:56,260 --> 00:04:57,310
‫come ti chiami?

69
00:04:57,310 --> 00:04:58,420
‫Componente mesh statico.

70
00:04:58,660 --> 00:05:01,360
‫E il componente statico può dire: Ehi, mi chiamo Bob.

71
00:05:01,630 --> 00:05:07,510
‫Ed è così che possiamo usare questi riferimenti e utilizzare la funzionalità di più oggetti diversi per

72
00:05:07,810 --> 00:05:09,400
‫arrivare dove vogliamo andare.

73
00:05:09,670 --> 00:05:13,750
‫Ora abbiamo detto che il riferimento a è dove trovare un oggetto.

74
00:05:13,990 --> 00:05:17,740
‫E ora qualcos'altro che vale la pena sottolineare è un riquadro dati.

75
00:05:17,740 --> 00:05:18,250
‫Cos'è un.

76
00:05:18,440 --> 00:05:21,260
‫TAPPIN Bene, questo riferimento al cubo ne ha effettivamente uno.

77
00:05:21,260 --> 00:05:26,590
‫Questa piccola cosa rotonda blu sul lato destro è una puntina dati.

78
00:05:26,600 --> 00:05:30,470
‫In realtà li abbiamo visti prima sui nodi della stringa di stampa sul lato sinistro e

79
00:05:30,470 --> 00:05:31,040
‫sono viola.

80
00:05:31,490 --> 00:05:37,190
‫E in che modo questi sono diversi dagli altri tipi di spille che abbiamo visto, questi spilli bianchi?

81
00:05:37,700 --> 00:05:42,530
‫Bene, il pin di dati è l'input o l'output dei dati per un nodo.

82
00:05:42,770 --> 00:05:47,630
‫Quindi un nodo, se è sul lato sinistro, è l'input, sono i dati con cui il nodo può lavorare.

83
00:05:47,930 --> 00:05:51,950
‫Se si trova sul lato destro, sono i dati prodotti da Node.

84
00:05:52,190 --> 00:06:00,430
‫Quindi, nel caso del cubo, questo nodo produce un riferimento all'attore del cubo, quindi i pin di esecuzione.

85
00:06:00,710 --> 00:06:06,410
‫Questi sono in realtà ciò che quei pin bianchi sono veramente chiamati per differenziarli dai pin di

86
00:06:06,620 --> 00:06:09,680
‫dati e sono ancora quando eseguire il nodo.

87
00:06:09,680 --> 00:06:12,230
‫Quindi i pin di dati sono ciò con cui eseguire il nodo.

88
00:06:12,440 --> 00:06:14,660
‫I pin di esecuzione sono quando eseguirlo.

89
00:06:14,900 --> 00:06:21,230
‫Quindi, con tutte queste informazioni, facciamo un po' di utilizzo delle funzionalità di questi oggetti.

90
00:06:21,590 --> 00:06:23,300
‫Quindi abbiamo il nostro riferimento al cubo.

91
00:06:23,300 --> 00:06:30,050
‫Se trasciniamo il perno di riferimento del cubo, puoi utilizzare tutte le funzionalità di quel cubo.

92
00:06:30,380 --> 00:06:36,230
‫Come ho detto, abbiamo un componente sul cubo chiamato componente mesh statico, e voglio andare avanti e

93
00:06:36,230 --> 00:06:38,360
‫ottenere un riferimento a quello.

94
00:06:38,360 --> 00:06:42,770
‫Quindi cercheremo componenti mesh statici.

95
00:06:43,340 --> 00:06:46,970
‫E l'elemento più in basso per me è ottenere il componente mesh statico.

96
00:06:46,970 --> 00:06:47,870
‫Posso fare clic su quello.

97
00:06:48,110 --> 00:06:54,560
‫Otteniamo un nuovo nodo con l'input che è un riferimento al cubo e l'output è un riferimento a questo.

98
00:06:54,560 --> 00:06:56,240
‫È un componente mesh statico.

99
00:06:56,600 --> 00:07:01,640
‫Quindi, se lo trasciniamo, possiamo chiedere la funzionalità del componente mesh statico

100
00:07:01,640 --> 00:07:11,270
‫come ottenere il nome visualizzato e questo ci ottiene l'input del riferimento del componente mesh statico e utilizza la sua funzionalità di ottenere il

101
00:07:11,270 --> 00:07:19,400
‫nome visualizzato e quindi restituisce una stringa o un valore di testo che possiamo stampare utilizzando il nodo della stringa

102
00:07:19,400 --> 00:07:20,270
‫di stampa.

103
00:07:20,270 --> 00:07:26,240
‫Quindi possiamo trascinarlo e digitare print string e quindi possiamo collegare le note di esecuzione in modo che seguano

104
00:07:26,240 --> 00:07:32,480
‫le altre due stringhe di stampa su Begin Play, noterai che alcuni di questi nodi non hanno pin di esecuzione

105
00:07:32,480 --> 00:07:34,700
‫e potrebbe essere fonte di confusione.

106
00:07:34,700 --> 00:07:35,690
‫Quando vengono eseguiti?

107
00:07:35,930 --> 00:07:42,470
‫Bene, vengono eseguiti ogni volta che il progetto ritiene appropriato, essenzialmente ogni volta che è necessario da un nodo

108
00:07:42,470 --> 00:07:44,810
‫che ha un pin di esecuzione.

109
00:07:45,200 --> 00:07:50,030
‫Quindi, se andiamo avanti e premiamo play, puoi vedere che si apre con un nome cube static mesh

110
00:07:50,030 --> 00:07:55,550
‫component zero, qualcosa del genere è un programma un po', forse non lo è, non è Bob È un po' più coinvolto

111
00:07:55,550 --> 00:07:56,150
‫di così.

112
00:07:56,180 --> 00:08:01,940
‫Ma puoi vedere che abbiamo essenzialmente codificato quella catena di domande che avevo sulla mia diapositiva.

113
00:08:02,510 --> 00:08:09,050
‫Quindi vorrei sfidarvi ad andare avanti e ottenere la massa dei nostri componenti mesh statici.

114
00:08:09,260 --> 00:08:11,240
‫L'abbiamo configurato in passato.

115
00:08:11,240 --> 00:08:15,890
‫Se vai nel livello e dai un'occhiata al riquadro dei dettagli, puoi vedere che una delle proprietà

116
00:08:15,890 --> 00:08:20,270
‫della fisica era la massa e l'abbiamo configurata come un dato sul componente mesh statico.

117
00:08:20,780 --> 00:08:26,510
‫Bene, se elimini il nodo get nome visualizzato e trascini via il componente mesh statico, dovresti essere

118
00:08:26,510 --> 00:08:33,380
‫in grado di cercare get mass e questo dovrebbe farti ottenere il pezzo di dati sul componente mesh statico e vedere se

119
00:08:33,410 --> 00:08:39,650
‫puoi stampare quel valore usando il nostro nodo della stringa di stampa mette in pausa il video e prova.

120
00:08:43,240 --> 00:08:43,890
‫Bene.

121
00:08:43,900 --> 00:08:44,680
‫Ben tornato.

122
00:08:44,890 --> 00:08:51,610
‫Quindi, se torniamo al progetto, elimina semplicemente il nostro nome visualizzato, trascina il componente mesh statico

123
00:08:51,610 --> 00:08:53,380
‫e cerca ottieni massa.

124
00:08:54,010 --> 00:08:55,780
‫Quindi possiamo inserire quel nodo.

125
00:08:56,050 --> 00:09:00,580
‫Abbiamo un valore di ritorno qui e questo sarà il nostro valore di massa.

126
00:09:00,580 --> 00:09:05,140
‫Puoi vedere se passi il mouse sopra dice restituisce la massa di questo componente in chilogrammi.

127
00:09:05,380 --> 00:09:12,300
‫E a proposito, il valore restituito significa solo i dati di output e quindi possiamo trascinare quel nodo nella nostra stringa

128
00:09:12,310 --> 00:09:14,290
‫in per la stringa di stampa.

129
00:09:14,710 --> 00:09:17,770
‫E vedi che crea un piccolo nodo di conversione che va bene.

130
00:09:17,770 --> 00:09:22,630
‫Sta convertendo da qualunque sia questo valore in qualcosa che la stringa di stampa accetterà.

131
00:09:23,020 --> 00:09:28,990
‫Possiamo andare avanti e premere play e vedrai che otteniamo il valore di 1000, che sappiamo essere la massa che abbiamo configurato

132
00:09:28,990 --> 00:09:30,940
‫o qualunque cosa tu effettivamente configuri.

133
00:09:30,940 --> 00:09:34,570
‫Puoi cambiarlo e vedere che anche questo valore cambierà.

134
00:09:34,930 --> 00:09:36,190
‫Quindi è tutto per questa lezione.

135
00:09:36,190 --> 00:09:42,790
‫Abbiamo imparato a conoscere gli oggetti e i loro riferimenti e come utilizzare i nodi di funzionalità nei progetti.

