﻿1
00:00:04,420 --> 00:00:06,220
‫Witam ponownie.

2
00:00:06,250 --> 00:00:13,210
‫Teraz stworzyliśmy już możliwość radzenia sobie ze śmiercią dla czołgu i wieży, i widzieliśmy, że wymagało

3
00:00:13,210 --> 00:00:20,200
‫to dodatkowych kroków w naszym czołgu, ponieważ uzyskaliśmy dostęp do kontrolera gracza, aby wyłączyć wprowadzanie danych

4
00:00:20,200 --> 00:00:22,120
‫i wyświetlanie kursora myszy.

5
00:00:22,150 --> 00:00:28,270
‫Teraz chcielibyśmy mieć własną niestandardową klasę kontrolera odtwarzacza, abyśmy mogli dodać do niej funkcjonalność, która

6
00:00:28,300 --> 00:00:30,210
‫obsłuży to za nas.

7
00:00:30,220 --> 00:00:36,010
‫A potem chcielibyśmy stworzyć plan oparty na tej klasie, dzięki czemu będziemy mogli uzyskać dostęp

8
00:00:36,010 --> 00:00:42,580
‫do niektórych odsłoniętych zmiennych w kontrolerze gracza, takich jak kursor myszy, który ma być wyświetlany, gdy zaczniemy wyświetlać

9
00:00:42,580 --> 00:00:43,630
‫kursor myszy.

10
00:00:43,660 --> 00:00:50,020
‫Dlatego stworzymy klasę kontrolera odtwarzacza i dodamy włączanie i wyłączanie funkcji wprowadzania danych.

11
00:00:50,020 --> 00:00:54,490
‫A potem stworzymy plan i ustawimy typ kursora myszy w planach.

12
00:00:54,520 --> 00:00:58,030
‫Teraz tworzenie tej klasy jest czymś, co wiesz, jak to zrobić.

13
00:00:58,030 --> 00:01:04,480
‫Stworzysz więc klasę kontrolera odtwarzacza dla swojego wyzwania, stworzysz nową klasę C++ i wybierzesz

14
00:01:04,480 --> 00:01:07,300
‫kontroler odtwarzacza jako klasę nadrzędną.

15
00:01:07,300 --> 00:01:11,800
‫Nazwijmy to czołgami, kontrolerem gracza lub czymś w tym stylu.

16
00:01:11,800 --> 00:01:15,760
‫A kiedy skończysz, stwórz plan oparty na tej klasie.

17
00:01:15,760 --> 00:01:21,340
‫Teraz, gdy już masz schemat, możesz przypisać go jako domyślny kontroler gracza w schemacie

18
00:01:21,340 --> 00:01:22,330
‫trybu gry.

19
00:01:22,360 --> 00:01:25,180
‫Zrób to w trybie gry, sam plan.

20
00:01:25,360 --> 00:01:30,280
‫Wstrzymaj wideo i stwórz teraz klasę kontrolera gracza dla czołgu.

21
00:01:33,230 --> 00:01:33,680
‫Dobra.

22
00:01:33,680 --> 00:01:34,790
‫Więc wróciłem do edytora.

23
00:01:34,790 --> 00:01:41,210
‫Mam zamiar kliknąć prawym przyciskiem myszy nową klasę C++ i przewinąć w dół i zobaczę, że kontroler gracza jest

24
00:01:41,210 --> 00:01:42,170
‫tutaj opcją.

25
00:01:42,170 --> 00:01:48,320
‫Więc mam zamiar wybrać kontroler gracza i nazwać moje nowe czołgi tuningu kontrolera gracza.

26
00:01:49,110 --> 00:01:53,190
‫Gracz, kontroler i kliknij utwórz klasę.

27
00:01:53,190 --> 00:01:56,790
‫A oto moja nowa klasa kontrolera odtwarzacza.

28
00:01:56,820 --> 00:02:00,030
‫Następnym krokiem jest stworzenie na tej podstawie planu.

29
00:02:00,030 --> 00:02:06,060
‫Wróciłem więc do edytora i nie kazałem ci tego robić, ale zamierzam utworzyć nowy folder w

30
00:02:06,060 --> 00:02:09,360
‫moim folderze z planami o nazwie Kontroler gracza.

31
00:02:10,440 --> 00:02:15,480
‫A jeśli chcesz mieć taką samą strukturę folderów, możesz utworzyć ten folder teraz, jeśli jeszcze tego

32
00:02:15,480 --> 00:02:19,170
‫nie zrobiłeś, a następnie przenieść do niego schemat kontrolera gracza.

33
00:02:19,170 --> 00:02:23,610
‫Jeśli nie wiesz, jak przenieść plan z jednego folderu do drugiego, jest to całkiem proste.

34
00:02:23,640 --> 00:02:30,810
‫Idziesz do folderu zawierającego plan, kliknij i przeciągnij do właściwego folderu, a następnie kliknij przenieś

35
00:02:30,810 --> 00:02:31,740
‫tutaj.

36
00:02:31,890 --> 00:02:36,900
‫Teraz nie chcę przenosić mojego pocisku do tego folderu, więc po prostu kliknę tutaj w przeglądarce

37
00:02:36,900 --> 00:02:38,760
‫treści, aby anulować tę akcję.

38
00:02:38,760 --> 00:02:41,370
‫Więc teraz mam folder kontrolera odtwarzacza.

39
00:02:41,370 --> 00:02:47,760
‫Mam zamiar kliknąć prawym przyciskiem myszy i kliknąć Blueprint Class iw tym wyszukiwaniu będę szukać czołgów toon,

40
00:02:47,760 --> 00:02:51,460
‫kontrolera gracza i wybrać tę klasę i kliknąć Select.

41
00:02:51,480 --> 00:02:57,180
‫Teraz mogę nazwać ten sygnał dźwiękowy, podkreśleniem, kontrolerem czołgów.

42
00:02:57,390 --> 00:02:59,070
‫Więc mam teraz kontroler gracza.

43
00:02:59,070 --> 00:03:02,100
‫Teraz muszę ustawić to jako domyślny kontroler gracza.

44
00:03:02,100 --> 00:03:08,220
‫Przejdę więc do folderu trybu gry, otworzę sygnał dźwiękowy, dostroę czołgi, tryb gry i otworzę pełny plan.

45
00:03:08,220 --> 00:03:11,670
‫Edytor A tu widzę klasę kontrolera odtwarzacza.

46
00:03:11,940 --> 00:03:18,690
‫Mam zamiar kliknąć menu rozwijane i wybrać dostrojenie BP, kontroler gracza i skompilować, zapisać

47
00:03:18,690 --> 00:03:19,950
‫i zamknąć.

48
00:03:19,950 --> 00:03:23,250
‫Więc teraz mamy niestandardową klasę kontrolera odtwarzacza.

49
00:03:23,250 --> 00:03:25,680
‫Jesteśmy gotowi, aby dodać do tego trochę funkcjonalności.

50
00:03:25,680 --> 00:03:31,110
‫Więc chciałbym mieć tutaj funkcję, która może ustawić stan włączenia gracza, niezależnie od tego, czy

51
00:03:31,110 --> 00:03:34,890
‫gracz ma możliwość dodawania danych wejściowych, które przeniosą czołg.

52
00:03:34,890 --> 00:03:39,690
‫Teraz planuję wywołać to z trybu gry, gdy aktor umrze.

53
00:03:39,690 --> 00:03:44,940
‫Więc zrobię tutaj sekcję publiczną i funkcja będzie nieważna.

54
00:03:44,940 --> 00:03:55,020
‫I zamierzam po prostu nazwać ten ustawiony stan włączony odtwarzacza, który może przyjąć wartość logiczną o nazwie B player

55
00:03:55,020 --> 00:03:55,950
‫enabled.

56
00:03:56,550 --> 00:04:01,830
‫W ten sposób, jeśli wywołamy tę funkcję, możemy przekazać true, jeśli chcemy, aby odtwarzacz był włączony,

57
00:04:01,830 --> 00:04:04,620
‫lub false, jeśli chcemy, aby był wyłączony.

58
00:04:04,620 --> 00:04:09,090
‫Zaimplementujmy więc tę funkcję w tuningu, odtwarzaczu, kontrolerze.

59
00:04:09,360 --> 00:04:14,100
‫CP Oto moja funkcja i oczywiście potrzebuję tutaj nazwy klasy.

60
00:04:14,100 --> 00:04:20,370
‫Będzie to więc czołg dostrajający, odtwarzacz, kontroler i operator rozdzielczości zasięgu.

61
00:04:20,370 --> 00:04:22,860
‫Teraz ta funkcja będzie dość prosta.

62
00:04:22,860 --> 00:04:28,320
‫Będzie sprawdzać wartość włączonego odtwarzacza B i możemy to zrobić za pomocą prostego sprawdzenia, czy.

63
00:04:28,320 --> 00:04:35,460
‫Więc powiem, czy gracz B jest włączony i chciałbym uzyskać dostęp do pionka i włączyć lub wyłączyć wejście,

64
00:04:35,460 --> 00:04:41,790
‫a sposobem na uzyskanie dostępu do pionka, który posiada ten kontroler gracza, jest użycie funkcji get

65
00:04:41,790 --> 00:04:42,390
‫pawn.

66
00:04:42,390 --> 00:04:47,520
‫To zwraca i pionek i klasa pionków mają tę funkcję.

67
00:04:47,520 --> 00:04:55,860
‫Włącz wejście i włącz wejście, jak widzieliśmy, wymaga kontrolera gracza, abyśmy mogli to przekazać.

68
00:04:56,190 --> 00:05:02,490
‫Teraz otrzymuję czerwone zawijasy, ponieważ musimy uwzględnić ten typ klasy pionka i możemy łatwo

69
00:05:02,490 --> 00:05:09,090
‫zobaczyć włączenie pionka, przechodząc do nierzeczywistej dokumentacji silnika dla pionka lub możemy po prostu przejść

70
00:05:09,090 --> 00:05:13,890
‫do naszej podstawowej klasy pionka, która dziedziczy po pionku.

71
00:05:14,070 --> 00:05:19,890
‫A ponieważ dziedziczy po pionku, widzieliśmy, że musi zawierać tam nagłówek pionka, abym mógł skopiować

72
00:05:19,890 --> 00:05:23,430
‫to, co zawiera jego strukturę gry, pionek z ukośnikiem.

73
00:05:24,150 --> 00:05:26,850
‫Więc z powrotem dostrojony kontroler odtwarzacza czołgów.

74
00:05:26,850 --> 00:05:30,900
‫Mogę wkleić to tutaj na górze, aby pozbyć się tych czerwonych zawijasów.

75
00:05:30,900 --> 00:05:37,470
‫Więc to zajmuje się przypadkiem, gdy włączony odtwarzacz B jest prawdziwy, ale potrzebujemy tutaj również przypadku LS.

76
00:05:38,160 --> 00:05:45,210
‫W przypadku LS zamierzamy wywołać get pawn i istnieje funkcja podobna do enable input, która ma na

77
00:05:45,210 --> 00:05:50,580
‫celu wyłączenie wejścia i nazywa się, jak można się domyślić, disable input.

78
00:05:50,580 --> 00:05:55,020
‫A to również wymaga kontrolera gracza, dla którego w tym przekażemy.

79
00:05:55,020 --> 00:06:00,480
‫Teraz kontroler gracza wyświetla kursor myszy i również to ustawimy.

80
00:06:00,480 --> 00:06:04,500
‫I chcielibyśmy to ustawić na podstawie tego, czy odtwarzacz powinien być włączony, czy nie.

81
00:06:04,500 --> 00:06:10,950
‫Więc niezależnie od włączonej wartości logicznej odtwarzacza B, ustawimy kursor myszy B show na tę wartość.

82
00:06:10,950 --> 00:06:18,090
‫Więc powiemy, że kursor myszy B sho oznacza włączenie odtwarzacza B.

83
00:06:18,360 --> 00:06:20,730
‫Teraz nie pokazaliśmy jeszcze kursora myszy.

84
00:06:20,730 --> 00:06:21,990
‫Dojdziemy do tej części.

85
00:06:21,990 --> 00:06:27,210
‫Chcielibyśmy widzieć kursor myszy podczas gry, aby wiedzieć, dokąd celuje nasz

86
00:06:27,210 --> 00:06:27,960
‫czołg.

87
00:06:27,960 --> 00:06:29,490
‫Więc wkrótce do tego dojdziemy.

88
00:06:29,490 --> 00:06:35,490
‫Ale na razie mamy tę fajną funkcję w kontrolerze gracza i chcielibyśmy teraz wywołać tę funkcję z

89
00:06:35,490 --> 00:06:38,550
‫trybu gry, aby pokazać, o co mi chodzi.

90
00:06:38,550 --> 00:06:44,610
‫Wracam do trybu gry i tutaj jest funkcja zmarłego aktora i zobaczysz, że wyłączamy wejście i

91
00:06:44,610 --> 00:06:47,070
‫ustawiamy tutaj b pokaż kursor myszy.

92
00:06:47,070 --> 00:06:48,450
‫Więc powód, dla którego chciałbym mieć.

93
00:06:48,540 --> 00:06:54,420
‫Funkcja na kontrolerze odtwarzacza, dzięki czemu możemy po prostu wywołać tę funkcję, przekazując wartość logiczną.

94
00:06:54,450 --> 00:07:00,600
‫W tym przypadku przekażemy false, aby wywołać funkcję wyłączania wejścia i B, aby kursor myszy

95
00:07:00,600 --> 00:07:02,570
‫był ustawiony na false.

96
00:07:02,580 --> 00:07:08,880
‫Więc możemy po prostu wywołać tę funkcję tutaj teraz, zamiast wywoływać tank get kontroler gracza, który zwraca

97
00:07:08,880 --> 00:07:09,960
‫kontroler gracza.

98
00:07:10,050 --> 00:07:15,590
‫Chciałbym mieć zmienną wskaźnikową, która umożliwiałaby nam dostęp do kontrolera gracza.

99
00:07:15,600 --> 00:07:20,560
‫Więc tutaj, w trybach dostrajania czołgów, dodam zmienną prywatną.

100
00:07:20,580 --> 00:07:27,990
‫Zamierzam to zadeklarować i będzie to czołg typu A, odtwarzacz, kontroler, to jest

101
00:07:27,990 --> 00:07:28,800
‫wskazówka.

102
00:07:28,800 --> 00:07:35,640
‫Zamierzam nazwać tę melodię Tank's Player Controller i mogę ją ustawić tutaj w trybie gry z

103
00:07:35,640 --> 00:07:39,500
‫tuningiem czołgów i rozpocząć grę, korzystając ze statyki rozgrywki.

104
00:07:39,510 --> 00:07:45,360
‫Teraz, jeśli zastanawiasz się, czy statystyki gry miały funkcję pobierania kontrolera gracza, miałeś rację.

105
00:07:45,570 --> 00:07:51,630
‫Jest to jedna z tych przydatnych funkcji statycznych, która wymaga obiektu kontekstu świata i

106
00:07:51,630 --> 00:07:58,020
‫indeksu odtwarzacza, abyśmy mogli skopiować dołączenie do statystyk rozgrywki i wywołać to tutaj w Begin Play.

107
00:07:58,020 --> 00:08:02,970
‫Widzę więc na górze, że mam już statystyki rozgrywki, to dlatego, że już tego używamy i

108
00:08:02,970 --> 00:08:05,310
‫zaczynamy grać, aby wywołać get player --.

109
00:08:05,310 --> 00:08:09,350
‫Zrobimy to samo tutaj, aby ustawić wskaźnik kontrolera gracza.

110
00:08:09,360 --> 00:08:11,400
‫To jest coś, co powinieneś wiedzieć, jak to zrobić.

111
00:08:11,400 --> 00:08:16,680
‫Dlaczego więc nie zatrzymasz wideo i nie zrobisz małego mini-wyzwania i po prostu ustawisz wartość tuningu

112
00:08:16,680 --> 00:08:18,060
‫czołgów, kontrolera gracza.

113
00:08:20,990 --> 00:08:21,470
‫Dobra.

114
00:08:21,470 --> 00:08:28,760
‫Więc powiemy, dostrojenie czołgów, gracza, kontrolera, i ustawimy go na równy wynikowi statystyki rozgrywki,

115
00:08:28,760 --> 00:08:37,550
‫pobraniu kontrolera gracza i wiemy, że obiekt kontekstu świata może być tym, a indeks gracza to nie

116
00:08:37,550 --> 00:08:40,160
‫dziewięć, ale zero .

117
00:08:40,160 --> 00:08:45,920
‫I oczywiście wiemy, że to zwraca kontroler gracza, a nie kontroler gracza.

118
00:08:45,920 --> 00:08:49,460
‫Więc tak jak zrobiliśmy to z Tankiem, zamierzamy obsadzić.

119
00:08:49,460 --> 00:08:58,970
‫Powiem więc, że rzucamy do kontrolera gracza dostrojenie czołgów i rzucamy wynik pobrania kontrolera

120
00:08:58,970 --> 00:08:59,720
‫gracza.

121
00:08:59,930 --> 00:09:05,270
‫Więc teraz, po Begin Play, będziemy mieli czołgi tuningowe, kontroler gracza.

122
00:09:05,270 --> 00:09:11,870
‫A teraz możemy wejść tutaj i zamiast pobierać kontroler gracza używając kontrolera gracza bezpośrednio

123
00:09:11,870 --> 00:09:19,430
‫z czołgu, możemy sprawdzić, czy nasz kontroler gracza ze zmiennym strojeniem jest prawidłowy, a następnie możemy

124
00:09:19,430 --> 00:09:21,830
‫wywołać tę funkcję, którą stworzyliśmy.

125
00:09:21,830 --> 00:09:23,090
‫Wróćmy i spójrzmy na to.

126
00:09:23,090 --> 00:09:30,620
‫Nazywa się to ustawianiem stanu włączenia gracza i tutaj, w trybie gry, chcielibyśmy wyłączyć wprowadzanie i przestać pokazywać kursor, co

127
00:09:30,620 --> 00:09:33,650
‫oznacza, że w tym celu przejdziemy na fałsz.

128
00:09:33,650 --> 00:09:43,490
‫Więc powiemy dostroić zbiorniki, gracz, kontroler, ustawić stan włączenia gracza i przechodzimy do tego jako fałsz i używamy dostrajania

129
00:09:43,490 --> 00:09:49,340
‫czołgów, kontrolera gracza, co oznacza, że musimy uwzględnić dostrojenie czołgów, kontroler

130
00:09:49,340 --> 00:09:50,300
‫gracza.

131
00:09:50,300 --> 00:09:56,570
‫Więc tutaj na górze dołączymy czołgi tuningowe, kontroler gracza.

132
00:09:57,620 --> 00:10:00,890
‫A teraz mamy zdefiniowane OC tego typu.

133
00:10:00,890 --> 00:10:02,630
‫Przejdźmy dalej i skompilujmy to.

134
00:10:02,780 --> 00:10:08,630
‫A ostatnią rzeczą, jaką zrobimy, zanim to zakończymy, będzie przejście do naszego schematu kontrolera gracza i

135
00:10:08,630 --> 00:10:15,320
‫chciałbym, abyś przewinął w dół do sekcji interfejsu myszy, a zobaczysz, że jest na niej napisany domyślny kursor myszy.

136
00:10:15,350 --> 00:10:19,730
‫Teraz możemy kliknąć menu i mamy do wyboru kilka różnych kursorów.

137
00:10:19,730 --> 00:10:21,770
‫I mam zamiar wybrać celownik.

138
00:10:21,950 --> 00:10:27,830
‫Teraz nie pokazujemy jeszcze kursora myszy, ale po uruchomieniu gry pokażemy kursor.

139
00:10:27,830 --> 00:10:33,920
‫A kiedy to robimy, podoba mi się, że jest to celownik zamiast domyślnej białej strzałki, którą zawsze widzimy, gdy patrzymy

140
00:10:33,920 --> 00:10:35,060
‫na kursor myszy.

141
00:10:35,060 --> 00:10:41,330
‫Ustaw więc domyślny kursor myszy na celownik, a będziemy mogli zobaczyć te celowniki, gdy faktycznie

142
00:10:41,330 --> 00:10:43,040
‫włączymy kursor myszy.

143
00:10:43,040 --> 00:10:50,540
‫Podsumowując, stworzyliśmy niestandardową klasę kontrolera odtwarzacza i używamy jej do włączania lub wyłączania wprowadzania za pomocą

144
00:10:50,540 --> 00:10:53,420
‫funkcji, którą umieściliśmy w tej klasie.

145
00:10:53,420 --> 00:10:59,420
‫Używamy również tej funkcji, aby pokazać kursor myszy lub ukryć kursor myszy na podstawie przekazanej

146
00:10:59,420 --> 00:11:00,290
‫wartości logicznej.

147
00:11:00,290 --> 00:11:06,350
‫W projekcie, który stworzyliśmy, ustawiliśmy typ kursora myszy i wkrótce zobaczymy, jak wygląda

148
00:11:06,350 --> 00:11:12,140
‫kursor myszy z krzyżykiem, gdy zaczniemy go pokazywać na początku gry.

149
00:11:12,140 --> 00:11:12,980
‫Świetna robota.

150
00:11:12,980 --> 00:11:18,620
‫Mamy teraz ten kontroler gracza i jesteśmy gotowi do dalszego wdrażania funkcji gry.

151
00:11:18,620 --> 00:11:20,810
‫Do zobaczenia w następnym filmie.

