﻿1
00:00:04,400 --> 00:00:05,330
‫Ciao e Benvenuto.

2
00:00:05,330 --> 00:00:11,750
‫In questa lezione, esamineremo come creare nuovi nodi nei blueprint da C++ in modo

3
00:00:11,750 --> 00:00:17,030
‫che essenzialmente possiamo chiamare la funzionalità C++ dall'interno dei blueprint.

4
00:00:17,120 --> 00:00:24,470
‫Immergiamoci e vediamo come è fatto ora così bene che posso usare i progetti per chiamare i nodi del progetto,

5
00:00:24,890 --> 00:00:32,060
‫ma in realtà voglio attivare il nostro grabber da questo pezzo di progetto qui, non stampare alcune stringhe.

6
00:00:32,360 --> 00:00:34,400
‫Allora come faccio a farlo?

7
00:00:35,060 --> 00:00:43,340
‫Bene, fortunatamente, possiamo esporre abbastanza facilmente una funzione da una classe C++ in un progetto.

8
00:00:43,610 --> 00:00:46,160
‫E il modo in cui lo facciamo è il seguente.

9
00:00:46,160 --> 00:00:48,530
‫Quindi andremo a creare una nuova funzione pubblica.

10
00:00:48,530 --> 00:00:52,280
‫Quindi andrò alla mia sezione pubblica appena sotto il componente tick.

11
00:00:52,640 --> 00:00:58,010
‫E qui creerò una nuova funzione con un tipo di ritorno void chiamato release.

12
00:00:58,310 --> 00:01:03,620
‫Quindi faremo la presa più avanti, ma per ora chiameremo solo una funzione di rilascio.

13
00:01:04,040 --> 00:01:07,610
‫Come lo rendo disponibile in Blueprint?

14
00:01:07,850 --> 00:01:10,790
‫Bene, devo farne una nuova funzione.

15
00:01:10,790 --> 00:01:13,130
‫Quindi hai nuove proprietà per le variabili.

16
00:01:13,400 --> 00:01:20,540
‫La tua funzione è in qualche modo l'equivalente per rendere una funzione sostanzialmente visibile nella terra del progetto.

17
00:01:20,540 --> 00:01:21,530
‫Ma non lo fermiamo.

18
00:01:22,130 --> 00:01:23,180
‫Proprio come con la nuova proprietà.

19
00:01:23,180 --> 00:01:30,290
‫Dobbiamo apportare una modifica ovunque qui con la funzione U, dobbiamo renderla un blueprint richiamabile e questo, come

20
00:01:31,130 --> 00:01:38,030
‫suggerisce il nome, significa che questa funzione ora diventa un nodo a cui il blueprint ha accesso.

21
00:01:38,510 --> 00:01:42,470
‫Quindi andiamo a prendere un CP e creiamo un'implementazione per questo.

22
00:01:42,470 --> 00:01:44,450
‫Sarà un tipo di ritorno nullo.

23
00:01:44,450 --> 00:01:52,760
‫Sarà una presa dei due punti, rilascio dei due punti, nessun parametro e inseriremo un corpo della funzione,

24
00:01:52,970 --> 00:02:00,830
‫che inserirò un nuovo accesso e darò il messaggio, sarò rilasciato grabber in questo modo .

25
00:02:00,890 --> 00:02:09,230
‫E poi possiamo compilare e tornare nel nostro lettore BP, eliminerò il nodo della stringa di

26
00:02:09,230 --> 00:02:17,000
‫stampa e trascinerò il rilascio qui e cercherò il rilascio come funzione qui.

27
00:02:17,000 --> 00:02:19,070
‫Ora andiamo a dare un'occhiata in giro.

28
00:02:19,070 --> 00:02:23,090
‫Al momento non viene visualizzato nulla perché devo farlo sul grabber.

29
00:02:23,120 --> 00:02:30,710
‫Quindi prendiamo il componente grabber, trasciniamolo nel grafico degli eventi per creare una variabile grabber e

30
00:02:30,710 --> 00:02:34,070
‫trasciniamolo via e cerchiamo il rilascio.

31
00:02:34,430 --> 00:02:36,620
‫Ora, nota che non sta succedendo nulla nemmeno in questo caso.

32
00:02:36,620 --> 00:02:38,240
‫E questo perché abbiamo usato il live coding.

33
00:02:38,240 --> 00:02:44,150
‫E a volte le cose che vengono compilate in live coding non vengono visualizzate nell'editor.

34
00:02:44,150 --> 00:02:49,880
‫Quello che dobbiamo fare è chiudere l'editor, chiudere la finestra di codifica leggera e

35
00:02:49,880 --> 00:02:57,200
‫quindi nel codice di Visual Studio, premere il tasto MAIUSC B e compilare utilizzando l'editor di lettura della crittografia

36
00:02:57,440 --> 00:03:03,470
‫quando lo sviluppo 64 compila, attendere che riesca e quindi riavviare l'editor dal file di progetto.

37
00:03:03,650 --> 00:03:10,610
‫Ora, se riapriamo il nostro lettore BP e ora trascinando via il grabber, cerchiamo il rilascio.

38
00:03:10,610 --> 00:03:13,580
‫Puoi vedere che ora c'è una nota chiamata rilascio.

39
00:03:13,970 --> 00:03:17,870
‫E in effetti tutto ciò che farà sarà raffreddare il nostro C++.

40
00:03:17,870 --> 00:03:25,550
‫Quindi puoi vedere come puoi davvero usare Blueprint e C++ in stretta collaborazione in questo modo esponendo

41
00:03:25,820 --> 00:03:28,700
‫le cose C++ nel mondo Blueprint.

42
00:03:28,700 --> 00:03:32,900
‫Ora collegherò la mia penna di esecuzione del rilascio al nodo di rilascio.

43
00:03:33,260 --> 00:03:38,390
‫Andremo nel nostro dungeon e andremo a giocare.

44
00:03:39,320 --> 00:03:46,850
‫E ora se dovessi afferrare e quindi rilasciare, non puoi vedere nulla perché è nel registro di output.

45
00:03:46,910 --> 00:03:52,160
‫Quindi apriamo il registro di output e lo colleghiamo al layout, quindi premiamo di nuovo play.

46
00:03:53,390 --> 00:03:57,800
‫E ora quando prendiamo e poi rilasciamo, puoi vedere che c'è un breve messaggio lì.

47
00:03:57,800 --> 00:04:04,160
‫Scorre molto velocemente perché ogni segno di spunta che stiamo facendo colpisce la statua dello stato del gargoyle.

48
00:04:04,400 --> 00:04:09,470
‫Ma poi se ti fermi e guardi indietro nel registro, puoi vedere che c'è scritto nonno rilasciato.

49
00:04:09,470 --> 00:04:12,800
‫Quindi il nostro codice C++ viene eseguito.

50
00:04:12,920 --> 00:04:19,220
‫Ok, quindi ora vorrei che spostassi il nostro codice di sweep in una funzione di cattura.

51
00:04:19,220 --> 00:04:22,310
‫Quindi creerai una funzione di cattura e la chiamerai da Blueprint.

52
00:04:22,310 --> 00:04:24,740
‫Puoi farlo allo stesso modo in cui ho appena eseguito la funzione di rilascio.

53
00:04:25,280 --> 00:04:29,540
‫Ma quando crei il corpo della funzione grab invece di stampare qualsiasi cosa,

54
00:04:29,540 --> 00:04:36,410
‫spostiamo quel codice completo e l'istruzione if e tutte le variabili di preparazione da TIC in modo che non lo stia facendo.

55
00:04:36,410 --> 00:04:42,620
‫Ogni volta che ne prendiamo due, proprio quando chiamiamo quella funzione di cattura, quando premiamo il pulsante del mouse

56
00:04:42,620 --> 00:04:49,910
‫verso il basso o premiamo un grilletto sul nostro controller, quindi ricompila e controlla i log per assicurarti che in effetti ciò avvenga

57
00:04:49,910 --> 00:04:54,560
‫solo quando premi il pulsante , metti in pausa il video e prova.

58
00:04:57,850 --> 00:04:58,140
‫Bene.

59
00:04:58,150 --> 00:04:58,900
‫Ben tornato.

60
00:04:59,290 --> 00:05:03,820
‫Quindi entriamo nel nostro C++ e fino al nostro file di intestazione.

61
00:05:03,820 --> 00:05:10,180
‫Chiuderò la finestra di compilazione qui e sopra la versione, creerò una

62
00:05:11,290 --> 00:05:16,570
‫nuova funzione richiamabile blueprints, che sarà void chiamata grab.

63
00:05:17,230 --> 00:05:20,440
‫E lo implementeremo nel C++.

64
00:05:20,590 --> 00:05:22,480
‫Quindi, ancora una volta, sarà un vuoto.

65
00:05:22,520 --> 00:05:28,330
‫Prendi i due punti, i due punti afferrano le parentesi e poi le parentesi graffe.

66
00:05:28,900 --> 00:05:34,660
‫E sposterò tutto questo codice dal componente TIC perché stiamo impostando i nostri vettori di inizio e tutto quel genere

67
00:05:34,660 --> 00:05:35,860
‫di cose buone.

68
00:05:36,250 --> 00:05:42,880
‫Scendiamo fino in fondo e taglialo e incollalo nella presa invece dove dovrebbe essere.

69
00:05:42,880 --> 00:05:43,750
‫Va bene.

70
00:05:43,750 --> 00:05:50,080
‫Ora vediamo se la codifica live porterà alla nuova funzione nel lettore BP.

71
00:05:50,080 --> 00:05:55,090
‫Passiamo al lettore BP, cancelliamo la nostra stringa di stampa e trasciniamola.

72
00:05:55,090 --> 00:05:58,540
‫Prendi un nodo che abbiamo e vediamo se riusciamo a trovare una funzione di cattura.

73
00:05:58,540 --> 00:06:01,900
‫Ok, quindi questa volta la funzione di cattura era disponibile per noi.

74
00:06:02,230 --> 00:06:02,800
‫È fantastico.

75
00:06:02,830 --> 00:06:09,550
‫Ora colleghiamo il pin di esecuzione premuto, andiamo nel nostro dungeon, premiamo play e assicuriamoci di scorrere verso il basso fino alla

76
00:06:09,550 --> 00:06:11,290
‫fine del registro di output.

77
00:06:11,410 --> 00:06:17,450
‫Andando a fare clic con il pulsante destro del mouse nella mia finestra e dare un'occhiata in giro, quindi premerò il pulsante sinistro.

78
00:06:17,480 --> 00:06:20,530
‫Dice che nessun attore colpisce e poi istantaneamente il rilascio del grabber.

79
00:06:20,530 --> 00:06:23,110
‫Quindi ora l'attore colpisce e poi rilascio la chiave.

80
00:06:23,140 --> 00:06:24,520
‫Nessun grabber di rilascio.

81
00:06:24,520 --> 00:06:25,900
‫Ora ho dimenticato il mio gargoyle.

82
00:06:25,900 --> 00:06:26,470
‫Date un'occhiata a questo.

83
00:06:26,890 --> 00:06:31,240
‫Lo premo e dice: L'attore ha colpito la statua di Gogol e poi posso rilasciare il grabber.

84
00:06:31,690 --> 00:06:36,430
‫Quindi ora abbiamo il giusto tipo di architettura in atto.

85
00:06:36,730 --> 00:06:38,590
‫Per afferrare questo gargoyle.

86
00:06:38,770 --> 00:06:42,450
‫Successivamente, dobbiamo occuparci della parte fisica di questa configurazione.

87
00:06:42,880 --> 00:06:44,080
‫Ci vediamo alla prossima lezione.

