﻿1
00:00:04,890 --> 00:00:05,790
‫Cześć i witaj.

2
00:00:05,790 --> 00:00:12,090
‫Na tym wykładzie nauczymy się o obiektach i jak możemy wykorzystać funkcjonalność obiektów

3
00:00:12,090 --> 00:00:16,110
‫i ich danych, aby rozpocząć tworzenie interesujących programów.

4
00:00:16,110 --> 00:00:17,430
‫Zanurzmy się.

5
00:00:18,940 --> 00:00:22,690
‫Zacznijmy więc ten wykład od wprowadzenia nowej koncepcji.

6
00:00:22,690 --> 00:00:27,400
‫Pojęcie obiektów jest absolutnie niezbędne dla wielu języków programowania.

7
00:00:28,030 --> 00:00:35,230
‫Tak więc przedmiot jest zasadniczo czymś, co chcesz reprezentować, coś jak w grze, w której możesz

8
00:00:35,230 --> 00:00:37,050
‫mieć poszukiwacza przygód.

9
00:00:37,060 --> 00:00:44,710
‫Jest obiektem w twoim świecie i może mieć pewne dane, które reprezentują to, kim jest.

10
00:00:44,980 --> 00:00:50,020
‫Na przykład takie rzeczy jak jego punkty doświadczenia, a może jego poziom.

11
00:00:50,020 --> 00:00:51,430
‫Jest poszukiwaczem przygód drugiego poziomu.

12
00:00:51,430 --> 00:00:55,000
‫Takie rzeczy to dane, które składają się na poszukiwacza przygód.

13
00:00:55,510 --> 00:00:57,310
‫Ale to nie wszystko, czym jest poszukiwacz przygód.

14
00:00:57,550 --> 00:01:04,990
‫Poszukiwacz przygód to także niektóre funkcje, takie jak możliwość wystrzeliwania strzał, na przykład możliwość skakania i

15
00:01:04,990 --> 00:01:06,400
‫tak dalej.

16
00:01:07,270 --> 00:01:09,370
‫Istnieją jednak inne rzeczy, które mogą być przedmiotami.

17
00:01:09,400 --> 00:01:15,700
‫Na przykład, możemy reprezentować rzeczy w świecie rzeczywistym, na komputerze, takie jak odtwarzacz, i

18
00:01:15,700 --> 00:01:20,770
‫możemy przechowywać odpowiednie właściwości odtwarzacza, na przykład czy odtwarzacz używa kontrolera?

19
00:01:21,370 --> 00:01:23,930
‫Czy gracz jest numer jeden czy numer dwa?

20
00:01:23,950 --> 00:01:29,380
‫Tego rodzaju fragmenty danych i odpowiednie funkcje, takie jak pobieranie ich bieżących danych wejściowych.

21
00:01:29,890 --> 00:01:35,200
‫Czy na przykład przytrzymują spację, aby uzyskać poziom umiejętności gracza, a następnie możesz

22
00:01:35,200 --> 00:01:38,440
‫mieć całkowicie abstrakcyjne obiekty, takie jak lista.

23
00:01:38,740 --> 00:01:42,010
‫Możesz więc mieć listę zawierającą pozycje jeden, dwa, trzy, cztery.

24
00:01:42,010 --> 00:01:44,430
‫I jest, a może może zawierać dowolne przedmioty, które ci się podobają.

25
00:01:44,440 --> 00:01:50,530
‫Dane mogą ulec zmianie, ale mogą również mieć pewne funkcje, takie jak usunięcie ostatniej pozycji z listy

26
00:01:50,530 --> 00:01:52,420
‫lub dodanie na koniec listy.

27
00:01:52,780 --> 00:01:55,120
‫Widać więc, że obiekty są bardzo, bardzo elastyczne.

28
00:01:55,120 --> 00:01:58,390
‫Mogą być używane do reprezentowania niezliczonych różnych rzeczy.

29
00:01:58,810 --> 00:02:05,230
‫Zauważysz, że funkcjonalność na dole tych obiektów jest w rzeczywistości tym, czym są te węzły lub

30
00:02:05,230 --> 00:02:08,320
‫jak wiele węzłów znajduje się w Blueprint.

31
00:02:08,410 --> 00:02:14,830
‫Zaczynają więc trochę mapować między obiektami a funkcjonalnością.

32
00:02:15,490 --> 00:02:15,760
‫Dobra.

33
00:02:15,760 --> 00:02:19,630
‫Wprowadziliśmy więc kilka nowych koncepcji, które po prostu trochę przypomnijmy.

34
00:02:19,900 --> 00:02:24,310
‫Powiedzieliśmy więc, że obiekty to zbiory danych i funkcjonalności.

35
00:02:25,030 --> 00:02:28,870
‫Być może nie zdawaliśmy sobie sprawy, że aktorzy są w rzeczywistości przedmiotami.

36
00:02:28,870 --> 00:02:34,660
‫Aktorzy to obiekty, które mogą przejść poziom i możesz to zobaczyć, jeśli wejdziesz na swój

37
00:02:34,660 --> 00:02:39,820
‫poziom, wybierzesz sześcian, zobaczysz, że jest cała masa szczegółów, namalujesz ładunek danych.

38
00:02:39,820 --> 00:02:45,130
‫Jak zobaczymy za chwilę, w formie węzła i schemacie jest mnóstwo funkcji.

39
00:02:46,120 --> 00:02:47,320
‫Następnie są komponenty.

40
00:02:47,350 --> 00:02:50,800
‫Teraz komponenty, których wcześniej nie omawialiśmy, ale oto one.

41
00:02:51,070 --> 00:02:56,980
‫Są to obiekty, które mogą przejść na aktora, podczas gdy aktorzy wchodzą na poziom, komponenty trafiają na samego

42
00:02:56,980 --> 00:02:57,460
‫aktora.

43
00:02:57,730 --> 00:03:03,190
‫Tak więc po wybraniu sześcianu możesz zobaczyć w górnej części panelu szczegółów, że istnieje ten statyczny

44
00:03:03,190 --> 00:03:03,910
‫komponent siatki.

45
00:03:04,570 --> 00:03:11,050
‫Jeśli faktycznie to klikniesz, zobaczysz, że okienko szczegółów otrzymuje ograniczony zestaw szczegółów.

46
00:03:11,050 --> 00:03:19,180
‫Pokazuje nie wszystkie właściwości dostępne w aktorze kostki, ale tylko podzbiór właściwości należących do

47
00:03:19,180 --> 00:03:25,780
‫statycznego komponentu siatki, który jest zasadniczo komponentem odpowiedzialnym za informowanie nas,

48
00:03:25,780 --> 00:03:27,790
‫jak narysować kostkę.

49
00:03:28,480 --> 00:03:34,270
‫Teraz te obiekty mogą często mieć o wiele więcej danych niż to, co oznacza, że mogą

50
00:03:34,270 --> 00:03:40,360
‫stać się dość trudne do manipulowania przez twój komputer, a na pewno, jeśli będzie musiał kopiować te obiekty.

51
00:03:40,810 --> 00:03:46,990
‫Więc zamiast tego, używamy sprytnej struktury zwanej referencją, która jest zasadniczo tylko

52
00:03:46,990 --> 00:03:53,800
‫adresem lub gdzie mam znaleźć ten obiekt w pamięci komputera, żebym nie musiał cały

53
00:03:53,800 --> 00:03:55,450
‫czas go przesuwać?

54
00:03:55,810 --> 00:04:01,750
‫Omówimy trochę więcej o tym, jak to faktycznie działa w pamięci, kiedy przejdziemy do C++, ale na razie

55
00:04:01,750 --> 00:04:03,910
‫wystarczy wiedzieć, że to tylko adres.

56
00:04:04,870 --> 00:04:09,640
‫Więc co możemy zrobić, na przykład, zanurzmy się w Unreal.

57
00:04:09,640 --> 00:04:17,110
‫Gdybyśmy byli na naszym głównym poziomie i chcielibyśmy użyć niektórych funkcji w naszym sześcianie, to co mogę zrobić, to wybrać sześcian

58
00:04:17,110 --> 00:04:22,030
‫w scenie, a następnie przejść do planu mojego poziomu i kliknąć prawym przyciskiem

59
00:04:22,390 --> 00:04:27,490
‫myszy, a następnie mogę kliknij odnośnik tworzenia do Cube, co spowoduje utworzenie nowego węzła.

60
00:04:28,000 --> 00:04:29,170
‫Co to robi?

61
00:04:29,170 --> 00:04:32,980
‫Cóż, to w zasadzie mówi nam, że to jest adres sześcianu.

62
00:04:32,980 --> 00:04:35,740
‫Jeśli chcesz coś zrobić z kostką, oto gdzie ją znajdziesz.

63
00:04:36,250 --> 00:04:41,230
‫To, co dzieje się w Blueprint, kiedy uruchamiasz grę, to szukanie tej kostki.

64
00:04:41,230 --> 00:04:47,080
‫A potem możesz zadawać pytania lub używać funkcji na kostce, na przykład mówiąc: Hej, gdzie znajduje się

65
00:04:47,080 --> 00:04:48,640
‫twój statyczny komponent siatki?

66
00:04:48,820 --> 00:04:51,220
‫I on idzie, ok, statyczne elementy siatki tam.

67
00:04:51,220 --> 00:04:56,260
‫Więc idziemy i znajdujemy komponent siatki statycznej, a potem możemy zadać pytania na ten temat, a oni mogą powiedzieć: Hej,

68
00:04:56,260 --> 00:04:57,310
‫jak masz na imię?

69
00:04:57,310 --> 00:04:58,420
‫Komponent siatki statycznej.

70
00:04:58,660 --> 00:05:01,360
‫A składnik statyczny może powiedzieć: Hej, nazywam się Bob.

71
00:05:01,630 --> 00:05:07,510
‫W ten sposób możemy wykorzystać te referencje i wykorzystać funkcjonalność wielu różnych obiektów, aby dostać

72
00:05:07,810 --> 00:05:09,400
‫się tam, gdzie chcemy.

73
00:05:09,670 --> 00:05:13,750
‫Teraz powiedzieliśmy, że referencja to miejsce, w którym można znaleźć obiekt.

74
00:05:13,990 --> 00:05:17,740
‫A teraz coś, na co warto zwrócić uwagę, to okienko danych.

75
00:05:17,740 --> 00:05:18,250
‫Co to jest.

76
00:05:18,440 --> 00:05:21,260
‫TAPPIN Cóż, to odniesienie do kostki faktycznie ma jeden.

77
00:05:21,260 --> 00:05:26,590
‫Ta mała niebieska okrągła rzecz po prawej stronie to pinezka danych.

78
00:05:26,600 --> 00:05:30,470
‫Właściwie widzieliśmy je już wcześniej na węzłach napisów po lewej stronie i są one

79
00:05:30,470 --> 00:05:31,040
‫fioletowe.

80
00:05:31,490 --> 00:05:37,190
‫A czym one się różnią od innych typów szpilek, które widzieliśmy, tych białych szpilek?

81
00:05:37,700 --> 00:05:42,530
‫Cóż, pin danych jest wejściem lub wyjściem danych dla węzła.

82
00:05:42,770 --> 00:05:47,630
‫Więc węzeł, jeśli jest po lewej stronie, jest to dane wejściowe, z którymi węzeł może pracować.

83
00:05:47,930 --> 00:05:51,950
‫Jeśli znajduje się po prawej stronie, są to dane, które generuje Node.

84
00:05:52,190 --> 00:06:00,430
‫Tak więc w przypadku kostki ten węzeł tworzy odwołanie do aktora kostki, a następnie pinów wykonawczych.

85
00:06:00,710 --> 00:06:06,410
‫Tak naprawdę nazywa się te białe szpilki, aby odróżnić je od szpilek danych, i

86
00:06:06,620 --> 00:06:09,680
‫nadal są one, kiedy uruchomić węzeł.

87
00:06:09,680 --> 00:06:12,230
‫Tak więc piny danych są tym, z czym należy uruchomić węzeł.

88
00:06:12,440 --> 00:06:14,660
‫Kołki wykonawcze służą do uruchamiania.

89
00:06:14,900 --> 00:06:21,230
‫Mając wszystkie te informacje, wykorzystajmy trochę funkcjonalność tych obiektów.

90
00:06:21,590 --> 00:06:23,300
‫Więc mamy odniesienie do kostki.

91
00:06:23,300 --> 00:06:30,050
‫Jeśli przeciągniemy pin odwołania do kostki, możesz wykorzystać wszystkie funkcje, które ma ta kostka.

92
00:06:30,380 --> 00:06:36,230
‫Jak powiedziałem, mamy komponent na kostce zwany statycznym komponentem siatki i chcę iść dalej

93
00:06:36,230 --> 00:06:38,360
‫i zdobyć odniesienie do tego.

94
00:06:38,360 --> 00:06:42,770
‫Poszukamy więc statycznych komponentów siatki.

95
00:06:43,340 --> 00:06:46,970
‫A najniższą rzeczą dla mnie jest uzyskanie statycznego komponentu siatki.

96
00:06:46,970 --> 00:06:47,870
‫Mogę na to kliknąć.

97
00:06:48,110 --> 00:06:54,560
‫Otrzymujemy nowy węzeł z wejściem będącym referencją do kostki, a wyjściem będącym referencją do tego.

98
00:06:54,560 --> 00:06:56,240
‫To statyczny element siatki.

99
00:06:56,600 --> 00:07:01,640
‫Więc jeśli przeciągniemy to, możemy poprosić o funkcjonalność statycznego komponentu

100
00:07:01,640 --> 00:07:11,270
‫siatki, taką jak pobierz wyświetlaną nazwę, która otrzyma dane wejściowe odniesienia do statycznego komponentu siatki i użyje swojej funkcji pobierz

101
00:07:11,270 --> 00:07:19,400
‫wyświetlaną nazwę, a następnie zwróci string lub wartość tekstową, którą możemy wydrukować za pomocą węzła print

102
00:07:19,400 --> 00:07:20,270
‫string.

103
00:07:20,270 --> 00:07:26,240
‫Możemy więc przeciągnąć to i wpisać print string, a następnie podłączyć uwagi dotyczące wykonania, tak aby przebiegały

104
00:07:26,240 --> 00:07:32,480
‫one za pozostałymi dwoma łańcuchami print w Begin Play, zauważysz, że niektóre z tych węzłów nie mają pinów

105
00:07:32,480 --> 00:07:34,700
‫wykonania i może być mylące.

106
00:07:34,700 --> 00:07:35,690
‫Kiedy uciekają?

107
00:07:35,930 --> 00:07:42,470
‫Cóż, uruchamiają się wtedy, gdy plany uznają to za stosowne, zasadniczo wtedy, gdy jest to potrzebne

108
00:07:42,470 --> 00:07:44,810
‫węzłowi, który ma pin wykonawczy.

109
00:07:45,200 --> 00:07:50,030
‫Więc jeśli pójdziemy dalej i wciśniemy play, zobaczysz, że wyskakuje z nazwą kostki statycznej komponentu siatki zero,

110
00:07:50,030 --> 00:07:55,550
‫coś w tym stylu to program bitowy, może to nie jest, to nie jest Bob. Jest to trochę bardziej

111
00:07:55,550 --> 00:07:56,150
‫skomplikowane.

112
00:07:56,180 --> 00:08:01,940
‫Ale widzicie, że zasadniczo zakodowaliśmy ten łańcuch pytań, który miałem na slajdzie.

113
00:08:02,510 --> 00:08:09,050
‫Chciałabym więc zachęcić was do pójścia naprzód i uzyskania masy naszych statycznych elementów siatki.

114
00:08:09,260 --> 00:08:11,240
‫Skonfigurowaliśmy to w przeszłości.

115
00:08:11,240 --> 00:08:15,890
‫Jeśli wejdziesz na poziom i spojrzysz na panel szczegółów, zobaczysz, że jedną z właściwości

116
00:08:15,890 --> 00:08:20,270
‫fizycznych była masa, którą skonfigurowaliśmy jako część danych na składniku siatki statycznej.

117
00:08:20,780 --> 00:08:26,510
‫Cóż, jeśli usuniesz węzeł pobierania nazwy wyświetlanej i przeciągniesz statyczny komponent siatki, powinieneś

118
00:08:26,510 --> 00:08:33,380
‫być w stanie wyszukać get mass, a to powinno dać ci fragment danych o statycznej komponencie siatki i

119
00:08:33,410 --> 00:08:39,650
‫sprawdzić, czy możesz wydrukować tę wartość za pomocą nasz węzeł łańcucha wydruku wstrzymuje wideo i zaczyna.

120
00:08:43,240 --> 00:08:43,890
‫Dobra.

121
00:08:43,900 --> 00:08:44,680
‫Witamy spowrotem.

122
00:08:44,890 --> 00:08:51,610
‫Więc jeśli wrócimy do planu, po prostu usuń naszą wyświetlaną nazwę, przeciągnij statyczny komponent siatki i

123
00:08:51,610 --> 00:08:53,380
‫wyszukaj get mass.

124
00:08:54,010 --> 00:08:55,780
‫Następnie możemy wciągnąć ten węzeł.

125
00:08:56,050 --> 00:09:00,580
‫Mamy tu wartość zwrotu i to będzie nasza wartość masy.

126
00:09:00,580 --> 00:09:05,140
‫Możesz zobaczyć, czy najedziesz kursorem na to, że zwraca masę tego składnika w kilogramach.

127
00:09:05,380 --> 00:09:12,300
‫A tak przy okazji, zwracana wartość oznacza po prostu dane wyjściowe, a następnie możemy przeciągnąć ten węzeł do naszego

128
00:09:12,310 --> 00:09:14,290
‫ciągu in dla ciągu drukowania.

129
00:09:14,710 --> 00:09:17,770
‫I widzisz, że tworzy mały węzeł konwersji, który jest w porządku.

130
00:09:17,770 --> 00:09:22,630
‫Konwertuje z jakiejkolwiek tej wartości na coś, co zaakceptuje łańcuch drukowania.

131
00:09:23,020 --> 00:09:28,990
‫Możemy iść dalej i nacisnąć play i widzisz, że otrzymujemy wartość 1000, która, jak wiemy, była masą, którą

132
00:09:28,990 --> 00:09:30,940
‫skonfigurowaliśmy lub cokolwiek faktycznie konfigurujesz.

133
00:09:30,940 --> 00:09:34,570
‫Możesz to zmienić i zobaczyć, że zmieni się również ta wartość.

134
00:09:34,930 --> 00:09:36,190
‫To tyle w przypadku tego wykładu.

135
00:09:36,190 --> 00:09:42,790
‫Dowiedzieliśmy się o obiektach i ich odniesieniach oraz o tym, jak używać węzłów funkcjonalności w planach.

