﻿1
00:00:04,130 --> 00:00:10,460
‫Tak więc celem tego filmu jest posiadanie pocisków, które faktycznie wystrzeliwują w powietrze i zachowują się

2
00:00:10,460 --> 00:00:11,930
‫tak, jak powinny.

3
00:00:12,020 --> 00:00:13,520
‫Hej, witaj z powrotem.

4
00:00:13,550 --> 00:00:19,430
‫W tym filmie zajmujemy się tym, aby nasz pocisk rzeczywiście zachowywał się jak pocisk i poruszał się.

5
00:00:19,610 --> 00:00:22,040
‫Istnieją różne sposoby radzenia sobie z tym.

6
00:00:22,070 --> 00:00:28,220
‫Jednym ze sposobów jest samodzielne ustawienie położenia i obrotu pocisku.

7
00:00:28,250 --> 00:00:33,680
‫Teraz generalnie wymagałoby to od nas aktualizacji co klatkę, więc prawdopodobnie umieścilibyśmy to

8
00:00:33,680 --> 00:00:34,940
‫w funkcji zaznaczenia.

9
00:00:35,210 --> 00:00:41,810
‫Innym sposobem jest po prostu dodanie impulsu do pocisku i pozwolenie silnikowi fizycznemu na przejęcie kontroli.

10
00:00:41,900 --> 00:00:48,440
‫Zasadniczo przykładamy siłę i wystrzeliwujemy pocisk, pozwalając grawitacji zrobić swoje, a pocisk

11
00:00:48,440 --> 00:00:51,380
‫po prostu wyleci w powietrze.

12
00:00:51,410 --> 00:00:55,310
‫Teraz innym sposobem byłoby użycie komponentu ruchu.

13
00:00:55,340 --> 00:01:00,560
‫Teraz jest to specjalny typ komponentu, który dodamy do naszej klasy pocisku.

14
00:01:00,560 --> 00:01:06,230
‫A po ustawieniu pewnych parametrów w składniku ruchu, składnik ruchu zajmie się

15
00:01:06,230 --> 00:01:08,060
‫ruchem dla aktora.

16
00:01:08,090 --> 00:01:15,860
‫Teraz tak się składa, że Unreal Engine ma wbudowany komponent stworzony specjalnie dla pocisków.

17
00:01:15,860 --> 00:01:20,210
‫Wykorzystuje to niektóre wbudowane funkcje Unreal Engine.

18
00:01:20,210 --> 00:01:26,120
‫Robiąc to, umożliwiamy komponentowi ruchu obsługę ruchu za nas na podstawie dostarczonych przez nas

19
00:01:26,120 --> 00:01:27,020
‫ustawień.

20
00:01:27,020 --> 00:01:29,360
‫Więc to jest metoda, której będziemy używać.

21
00:01:29,360 --> 00:01:35,750
‫Chcielibyśmy więc dodać komponent ruchu pocisku do naszej klasy pocisku, który

22
00:01:35,750 --> 00:01:38,690
‫będzie obsługiwał ruch obiektu pocisku.

23
00:01:38,690 --> 00:01:45,440
‫Tak więc, gdy odradzamy pocisk na świecie, komponent ruchu pocisku, który należy do klasy pocisku, można

24
00:01:45,440 --> 00:01:51,620
‫skonfigurować i dostosować w oparciu o ustawione przez nas zmienne w klasie ruchu

25
00:01:51,650 --> 00:01:52,190
‫pocisku.

26
00:01:52,220 --> 00:01:58,340
‫Teraz ustawimy kilka z nich, takich jak prędkość początkowa i prędkość maksymalna oraz komponent

27
00:01:58,340 --> 00:02:02,750
‫ruchu pocisku, który faktycznie przesunie pocisk w świecie za nas.

28
00:02:02,780 --> 00:02:06,290
‫Oto strona z dokumentacją Unreal Engine.

29
00:02:06,290 --> 00:02:07,940
‫Komponent ruchu pocisku.

30
00:02:07,940 --> 00:02:13,130
‫Jest to komponent, którym się zajmujemy, a zobaczysz, że mówi, że komponent Ruch

31
00:02:13,130 --> 00:02:16,700
‫pocisku aktualizuje pozycję innego komponentu podczas jego tyknięcia.

32
00:02:16,700 --> 00:02:19,340
‫Domyślnie przeniesie komponent trasy.

33
00:02:19,370 --> 00:02:20,900
‫Teraz oto dołącz.

34
00:02:20,900 --> 00:02:26,060
‫A jeśli będziesz kontynuować przewijanie w dół, zobaczysz niektóre zmienne, które można ustawić w

35
00:02:26,060 --> 00:02:26,810
‫komponencie ruchu.

36
00:02:26,810 --> 00:02:30,740
‫Więc przewiń to i spójrz i zobacz, jakie są opcje.

37
00:02:30,770 --> 00:02:36,770
‫Teraz dodajemy składnik ruchu pocisku do naszej klasy w taki sam sposób, w jaki dodaliśmy każdy inny składnik, co

38
00:02:36,770 --> 00:02:39,350
‫oznacza, że już wiesz, jak to zrobić.

39
00:02:39,350 --> 00:02:45,980
‫Więc twoim wyzwaniem jest przejście do klasy pocisku i dodanie zmiennej wskaźnika komponentu ruchu pocisku i

40
00:02:45,980 --> 00:02:49,310
‫ujawnienie tego, czyniąc go widocznym w dowolnym miejscu.

41
00:02:49,310 --> 00:02:54,140
‫W ten sposób możemy łatwo edytować komponent ruchu pocisku z poziomu planów.

42
00:02:54,150 --> 00:02:59,560
‫Teraz zbudujesz go w konstruktorze pocisku, używając opcji Utwórz domyślny obiekt podrzędny.

43
00:02:59,570 --> 00:03:05,900
‫Nie zapomnij dołączyć odpowiedniego nagłówka i ustawić zmienne prędkości początkowej i maksymalnej prędkości komponentu

44
00:03:05,900 --> 00:03:06,920
‫ruchu pocisku.

45
00:03:06,920 --> 00:03:12,650
‫Teraz wybierz dla nich własne wartości i ustaw je w konstruktorze, a następnie przetestuj grę.

46
00:03:12,650 --> 00:03:18,530
‫Dostosujesz prędkość początkową i maksymalną w panelu szczegółów, wybierając komponent w

47
00:03:18,530 --> 00:03:19,790
‫schemacie pocisku.

48
00:03:19,790 --> 00:03:25,910
‫A to da ci trochę doświadczenia w dostosowywaniu parametrów i eksperymentowaniu jako programista.

49
00:03:25,910 --> 00:03:30,080
‫Zatrzymaj więc wideo i utwórz teraz komponent ruchu pocisku.

50
00:03:32,900 --> 00:03:33,180
‫Dobra.

51
00:03:33,230 --> 00:03:39,380
‫Więc jestem tutaj w pocisku H i prawdopodobnie dodałeś swój komponent w sekcji prywatnej.

52
00:03:39,380 --> 00:03:41,780
‫Więc jeśli tak, masz właściwy instynkt.

53
00:03:41,780 --> 00:03:43,730
‫Uczynimy to zmienną prywatną.

54
00:03:43,730 --> 00:03:44,180
‫W porządku.

55
00:03:44,180 --> 00:03:48,040
‫Jeśli tego nie zrobiłeś, możesz łatwo przenieść go do sekcji prywatnej, jeśli chcesz.

56
00:03:48,050 --> 00:03:54,560
‫Teraz będzie to składnik ruchu pocisku U, a to jest wskaźnik.

57
00:03:54,560 --> 00:03:58,610
‫Możemy po prostu nazwać ten składnik ruchu pocisku.

58
00:03:58,760 --> 00:04:05,300
‫Teraz zamierzam nadać temu właściwość U i po prostu uczynić to widocznym w dowolnym miejscu.

59
00:04:06,020 --> 00:04:08,210
‫Teraz prawdopodobnie nadałeś mu kategorię.

60
00:04:08,210 --> 00:04:13,130
‫Jeśli nie, to w porządku, ale zamierzam nadać temu kategorię i nazwać to ruchem.

61
00:04:13,130 --> 00:04:15,650
‫Mamy więc komponent ruchu pocisku.

62
00:04:15,650 --> 00:04:20,660
‫Zamierzam porzucić deklarację forward i zobaczę, czy uda mi się teraz

63
00:04:20,660 --> 00:04:24,290
‫skompilować w CP pocisku, dołączę plik nagłówkowy.

64
00:04:24,290 --> 00:04:31,340
‫Wracając do strony dokumentacji, skopiuję to i po prostu wkleję tutaj w projectile.

65
00:04:31,340 --> 00:04:34,250
‫A teraz jestem gotowy do skonstruowania mojego komponentu.

66
00:04:34,250 --> 00:04:42,440
‫Więc powiem komponent ruchu pocisku i użyję tworzenia domyślnego obiektu podrzędnego,

67
00:04:42,440 --> 00:04:48,140
‫a typem będzie komponent ruchu pocisku.

68
00:04:48,470 --> 00:04:55,760
‫A dla tekstu, będę nazywał ten komponent ruchu pocisku właśnie w ten sposób.

69
00:04:55,760 --> 00:04:59,300
‫Jest mój średnik i mamy go.

70
00:04:59,330 --> 00:05:07,850
‫Teraz, zgodnie z instrukcją, ustawimy ruch pocisku, maksymalną prędkość komponentu i dam temu początkową prędkość, powiedzmy,

71
00:05:07,850 --> 00:05:14,810
‫1300 F. To jest coś, z czym będziemy eksperymentować i poprzez testowanie gry

72
00:05:14,810 --> 00:05:17,600
‫dostosujemy to do właściwa wartość.

73
00:05:17,600 --> 00:05:25,490
‫Teraz ustawię początkową prędkość komponentu ruchu pocisku i ustawię ją na tę samą wartość.

74
00:05:25,910 --> 00:05:31,190
‫Tak więc prędkość początkowa będzie określać, jak szybki jest komponent pocisku, gdy się uruchamia.

75
00:05:31,190 --> 00:05:33,710
‫I oczywiście nigdy nie przekroczy maksymalnej prędkości.

76
00:05:33,860 --> 00:05:35,750
‫Przejdźmy dalej i skompilujmy to.

77
00:05:36,050 --> 00:05:42,200
‫Ok, więc otrzymuję błąd kompilacji i jeśli pójdę w górę, zobaczę, że odwołuje się do pocisku h.

78
00:05:42,350 --> 00:05:47,240
‫Wróćmy więc do pocisku H i jest napisane Pocisk H 27.

79
00:05:47,240 --> 00:05:51,020
‫Odnosi się do linii 27 i to jest ta linia tutaj.

80
00:05:51,140 --> 00:05:56,090
‫I otrzymujemy ten składnik ruchu pocisku, który nie jest członkiem pocisku.

81
00:05:56,120 --> 00:05:59,990
‫Pamiętaj, to był rodzaj błędu, który widzieliśmy, gdy nie przekazaliśmy dalej deklaracji.

82
00:05:59,990 --> 00:06:06,590
‫Możemy więc łatwo przekazać to dalej za pomocą słowa kluczowego class i skompilować ponownie, a kompilacja zakończy

83
00:06:06,590 --> 00:06:07,400
‫się sukcesem.

84
00:06:07,400 --> 00:06:12,830
‫Tak więc ponownie, w ten sposób możemy dowiedzieć się, czy dany komponent jest domyślnie dołączony.

85
00:06:12,830 --> 00:06:17,270
‫I widzieliśmy, że ten nie jest taki z udaną kompilacją.

86
00:06:17,270 --> 00:06:18,890
‫Wróćmy do edytora.

87
00:06:19,280 --> 00:06:26,030
‫OK, więc wróciłem do edytora i zamierzam przejść do planów i aktorów, a oto pocisk BFP.

88
00:06:26,300 --> 00:06:28,190
‫Więc tutaj pocisk NP.

89
00:06:28,190 --> 00:06:32,090
‫Teraz widzę, że jest tutaj komponent ruchu pocisku.

90
00:06:32,390 --> 00:06:38,870
‫A w panelu szczegółów możesz zobaczyć, że pod pociskiem mamy prędkość początkową i maksymalną, możesz

91
00:06:38,870 --> 00:06:43,280
‫przewijać i zobaczyć wiele innych parametrów, które możemy ustawić.

92
00:06:43,400 --> 00:06:44,840
‫Więc zagrajmy w test.

93
00:06:44,840 --> 00:06:49,190
‫Wcisnę play, kliknę lewym przyciskiem i to sprawdzę.

94
00:06:49,190 --> 00:06:51,200
‫Nasze pociski się poruszają.

95
00:06:51,200 --> 00:06:55,550
‫Lecą w powietrzu i zatrzymują się, gdy w coś uderzą.

96
00:06:55,550 --> 00:07:00,260
‫Teraz w końcu chcielibyśmy, aby wysadziły je w powietrze i spowodowały uszkodzenia.

97
00:07:00,260 --> 00:07:02,780
‫Ale to świetny punkt wyjścia.

98
00:07:02,780 --> 00:07:08,420
‫Przejdźmy teraz w zasięg ognia i zobaczmy, czy wieżyczki wystrzelą pocisk.

99
00:07:08,420 --> 00:07:09,740
‫I oczywiście, że nie.

100
00:07:09,740 --> 00:07:13,640
‫Powodem jest to, że mamy tę podklasę zmiennej TW.

101
00:07:13,640 --> 00:07:19,310
‫Więc jeśli zastanawiasz się, dlaczego wieżyczki tak naprawdę nie generują pocisków, być może tego nie

102
00:07:19,310 --> 00:07:19,730
‫ustawiłeś.

103
00:07:19,730 --> 00:07:25,370
‫Więc chodźmy dalej i wejdźmy do stawów i zapiszmy w stawie, wieżyczce i otwórzmy pełny plan.

104
00:07:25,370 --> 00:07:29,960
‫Editor A klasę pocisku umieściliśmy w sekcji walki.

105
00:07:29,960 --> 00:07:37,790
‫To jest nasza podklasa, więc jeśli ustawimy to na pocisk BP, nasza wieża również powinna zacząć pojawiać

106
00:07:37,790 --> 00:07:38,780
‫się pociski.

107
00:07:38,780 --> 00:07:41,960
‫Więc wejdźmy w zasięg ognia i mamy to.

108
00:07:41,960 --> 00:07:43,910
‫Strzela w nas pociskami.

109
00:07:43,910 --> 00:07:46,550
‫Więc to wygląda niesamowicie.

110
00:07:47,030 --> 00:07:48,950
‫Więc mamy teraz pociski.

111
00:07:48,950 --> 00:07:51,230
‫Przyjrzyjmy się więc naszemu planowi sekcji.

112
00:07:51,230 --> 00:07:56,900
‫Stworzyliśmy już czołg, który może poruszać się po całym świecie, a teraz obsługujemy wprowadzanie danych za

113
00:07:56,900 --> 00:07:59,150
‫pomocą klawiszy WASD i kliknięć myszą.

114
00:07:59,150 --> 00:08:05,510
‫Stworzyliśmy klasę wieży wroga, nazwaliśmy ją wieżą w C++ i dodaliśmy możliwość

115
00:08:05,510 --> 00:08:06,590
‫strzelania pociskami.

116
00:08:06,590 --> 00:08:11,240
‫Teraz musimy zająć się obrażeniami i zniszczeniem zdrowia w tej grze.

117
00:08:11,240 --> 00:08:15,770
‫To są nasze kolejne kroki, które pojawią się w nadchodzących filmach.

118
00:08:15,770 --> 00:08:21,890
‫Więc teraz, gdy dodaliśmy komponent ruchu pocisków, mamy teraz rzeczywiste pociski.

119
00:08:21,890 --> 00:08:26,990
‫Do zobaczenia w następnym filmie, kiedy zaczniemy rozmawiać o tym, jak sprawić, by pociski

120
00:08:26,990 --> 00:08:29,270
‫faktycznie wybuchały i powodowały uszkodzenia.

121
00:08:29,690 --> 00:08:30,650
‫Zobaczymy się wkrótce.

