﻿1
00:00:04,400 --> 00:00:05,330
‫Cześć i witaj.

2
00:00:05,330 --> 00:00:09,230
‫W tym wykładzie będziemy zadawać obrażenia temu aktorowi.

3
00:00:09,260 --> 00:00:13,400
‫Zrobimy to, omijając wirtualną metodę o nazwie odbieranie obrażeń na aktorze.

4
00:00:13,700 --> 00:00:18,320
‫I możecie zobaczyć w dzienniku tutaj, mamy spadek zdrowia, kiedy strzelam do tej postaci aż do

5
00:00:18,320 --> 00:00:21,830
‫zera, a potem zatrzymuje się na zero, nie przechodząc w liczby ujemne.

6
00:00:21,830 --> 00:00:23,570
‫Więc zanurkujmy i zobaczmy, jak to się robi.

7
00:00:26,480 --> 00:00:32,810
‫Więc chociaż obecnie jesteśmy w stanie wyrządzić krzywdę aktorom, których tu uderzyliśmy, takim jak ten

8
00:00:33,470 --> 00:00:36,530
‫facet, tak naprawdę nie otrzymujemy tych obrażeń.

9
00:00:36,560 --> 00:00:42,800
‫W tym miejscu wkraczają wirtualne metody z ostatniego wykładu, ponieważ tak jak w przypadku rozpoczęcia gry lub

10
00:00:42,920 --> 00:00:46,010
‫technologii, chcemy móc otrzymać obrażenia od aktora.

11
00:00:46,070 --> 00:00:50,630
‫Teraz na szczęście, jeśli podejdziesz do aktora Punkt H i zajrzysz tu trochę, zobaczysz,

12
00:00:50,630 --> 00:00:52,940
‫że istnieje ta wirtualna metoda zadawania obrażeń.

13
00:00:53,300 --> 00:01:00,330
‫Teraz można to zrobić również w przypadku wydarzeń i prawdopodobnie widziałeś to w ten sposób przed rejestracją

14
00:01:00,350 --> 00:01:01,460
‫na wydarzenia.

15
00:01:01,520 --> 00:01:06,920
‫Teraz zamierzam zrobić tylko inny sposób zadawania obrażeń, w którym tak naprawdę mamy obrażenia zgromadzone

16
00:01:06,920 --> 00:01:09,410
‫przeciwko aktorowi, a nie w komponencie.

17
00:01:10,220 --> 00:01:15,620
‫A jednym z łatwych sposobów na otrzymanie tych obrażeń jest tutaj wirtualna metoda.

18
00:01:16,070 --> 00:01:18,440
‫I to jest metoda wirtualna, którą zamierzamy zmienić.

19
00:01:18,740 --> 00:01:24,860
‫Więc skopiuję to i przejdę do naszego konkretnego aktora, który jest strzelcem.

20
00:01:25,100 --> 00:01:25,730
‫Będzie szybko.

21
00:01:25,730 --> 00:01:27,620
‫Może szukać strzelca.

22
00:01:27,620 --> 00:01:28,550
‫Znak kropka H.

23
00:01:29,120 --> 00:01:35,200
‫A jedyną rzeczą, którą chcę sprawdzić, jest to, gdzie to wchodzi, aktor kropka H.

24
00:01:35,870 --> 00:01:41,420
‫Więc jeśli przewiniemy w górę, powinniśmy być w stanie zobaczyć, w której sekcji się znajdujemy.

25
00:01:42,170 --> 00:01:50,210
‫Więc zamierzam tylko przewinąć w górę, aż znajdę, czy jesteśmy publicznie, czy to, co oni idą, jesteśmy w

26
00:01:50,210 --> 00:01:51,170
‫sekcji publicznej.

27
00:01:51,170 --> 00:01:54,500
‫Więc to powinno być również w sekcji publicznej.

28
00:01:54,530 --> 00:02:00,140
‫Więc po prostu wstawię to pod naszą technologię i ustawię komponent wejściowy gracza w

29
00:02:00,140 --> 00:02:02,930
‫kropkę strzelanki i po prostu wkleję.

30
00:02:03,320 --> 00:02:10,670
‫I jak powiedziałem w poprzednim wykładzie, możesz użyć override, aby upewnić się, że rzeczywiście nadpisujesz wirtualną metodę od rodzica

31
00:02:10,670 --> 00:02:16,340
‫i nie jest konieczne, aby wirtualna była tutaj z przodu, ale i tak ją

32
00:02:16,340 --> 00:02:17,000
‫zachowamy.

33
00:02:17,240 --> 00:02:21,530
‫A tutaj możesz zobaczyć wszystkie dane, które przychodzą, aby odnieść obrażenia.

34
00:02:21,530 --> 00:02:29,030
‫Mamy kwotę szkody, zdarzenia powodujące szkodę oraz kontrolera powodującego szkodę, inicjatora i

35
00:02:29,030 --> 00:02:30,470
‫przyczynę szkody.

36
00:02:30,470 --> 00:02:34,190
‫Wszystkie te rzeczy, które przekazaliśmy z broni, również pojawiają się tutaj.

37
00:02:34,190 --> 00:02:34,910
‫Więc to świetnie.

38
00:02:35,270 --> 00:02:41,000
‫Teraz, jeśli pójdziemy dalej i wykonamy przesunięcie kontroli, P utworzy implementację lub skopiuje i wklei, wtedy możemy

39
00:02:41,000 --> 00:02:43,610
‫przejść i sprawić, by implementacja odniosła obrażenia.

40
00:02:43,910 --> 00:02:49,190
‫Ale pierwszą rzeczą, na którą należy uważać, jest to, że za każdym razem, gdy

41
00:02:49,190 --> 00:02:56,420
‫coś nadpisujemy, chcemy pomyśleć o wywołaniu wersji klasy nadrzędnej, aby otrzymać obrażenia, ponieważ może być tam jakaś implementacja, która

42
00:02:56,750 --> 00:02:58,340
‫musi zostać uruchomiona.

43
00:02:58,970 --> 00:03:00,080
‫Więc to właśnie zamierzamy zrobić.

44
00:03:00,080 --> 00:03:01,040
‫Robimy to zawsze.

45
00:03:01,040 --> 00:03:02,150
‫Zrobiliśmy to z technologią.

46
00:03:02,150 --> 00:03:03,650
‫Zrobiliśmy to z Begin Play.

47
00:03:03,650 --> 00:03:07,520
‫Widać, że zawsze było to super fajne na początku, a to dlatego, że

48
00:03:07,520 --> 00:03:10,970
‫kiedy nadpisujemy metodę, którą przepisaliśmy całkowicie, całkowicie usuwamy to zachowanie.

49
00:03:11,240 --> 00:03:16,910
‫Więc jeśli chcemy takiego zachowania, co zwykle robimy, powinniśmy zawsze zaczynać od fajnego do

50
00:03:16,940 --> 00:03:17,420
‫super.

51
00:03:17,600 --> 00:03:19,760
‫Więc zamierzamy zadać fajne obrażenia.

52
00:03:21,420 --> 00:03:23,460
‫To zajmie wielkość obrażeń.

53
00:03:23,550 --> 00:03:25,290
‫Więc to jest trochę nudne.

54
00:03:25,290 --> 00:03:27,810
‫Niestety, moje narzędzie autouzupełniania nie robi tego za nas.

55
00:03:27,810 --> 00:03:28,970
‫Zdarzenie szkody.

56
00:03:30,560 --> 00:03:32,600
‫Więc jaki był następny?

57
00:03:32,600 --> 00:03:34,760
‫Mieliśmy kontrolę.

58
00:03:35,090 --> 00:03:37,330
‫Więc inicjator wydarzenia to tylko kopia.

59
00:03:37,910 --> 00:03:42,140
‫A potem mamy sprawcę szkód, którym jest aktor.

60
00:03:43,280 --> 00:03:48,080
‫Więc wszystko to jest wezwane do wykonania przez rodziców obrażeń odniesionych.

61
00:03:48,650 --> 00:03:52,130
‫A jedyną rzeczą jest to, że ma typ zwracany.

62
00:03:52,220 --> 00:03:54,400
‫Tak więc zastosowana została rzeczywista szkoda.

63
00:03:54,410 --> 00:03:55,550
‫Więc będziemy pływać.

64
00:03:56,720 --> 00:03:59,090
‫Zastosowano uszkodzenie?

65
00:03:59,390 --> 00:04:01,430
‫Czy wartość zwrotu z odniesie obrażenia?

66
00:04:01,430 --> 00:04:04,760
‫Więc po prostu zatrzymamy zaaplikowane tam obrażenia?

67
00:04:05,360 --> 00:04:11,390
‫Realistycznie rzecz biorąc, będzie to tyle samo, co obrażenia w naszym konkretnym przypadku użycia,

68
00:04:11,390 --> 00:04:14,330
‫ale niekoniecznie, więc użyjemy zadanych obrażeń.

69
00:04:14,780 --> 00:04:20,750
‫Następną rzeczą, którą chcemy zrobić, jest posiadanie informacji o tym, ile faktycznie mamy zdrowia.

70
00:04:21,140 --> 00:04:24,770
‫Teraz zamierzam to zrobić z dwiema zmiennymi tutaj.

71
00:04:25,100 --> 00:04:30,200
‫Po pierwsze, zamierzam stworzyć obie nowe właściwości, ponieważ chcę, aby stan zdrowia był widoczny w

72
00:04:30,200 --> 00:04:31,880
‫inspektorze, przynajmniej na razie.

73
00:04:32,510 --> 00:04:37,160
‫I będziemy mieli nieruchomość pierwszego roku, która będzie miała maksymalny stan zdrowia.

74
00:04:37,160 --> 00:04:39,410
‫To jest to, do czego początkowo inicjujemy zdrowie.

75
00:04:39,710 --> 00:04:47,960
‫Więc twoja własność, będzie to tylko domyślna edycja, ponieważ będzie używana na początku gry.

76
00:04:48,260 --> 00:04:53,090
‫A więc zmiana wartości maksymalnego zdrowia po fakcie nie będzie miała żadnego wpływu.

77
00:04:53,090 --> 00:05:01,310
‫Więc Max Health, ustawię Max Health na 100 tutaj, a potem będziemy mieli tutaj jeszcze jedną własność, która, jak powiedziałem,

78
00:05:01,310 --> 00:05:05,960
‫będzie nieruchomość na rok tylko po to, abyśmy mogli sprawdzić to.

79
00:05:06,350 --> 00:05:09,530
‫I będę to wszędzie widoczne.

80
00:05:10,660 --> 00:05:15,010
‫Ale nie można go edytować, ponieważ nie chcemy móc zmienić tego stanu zdrowia, przynajmniej nie w tej chwili.

81
00:05:15,580 --> 00:05:18,700
‫Możesz chcieć tego do celów debugowania, ale ja tego nie robię.

82
00:05:19,090 --> 00:05:26,920
‫Więc będziemy mieć tutaj zdrowie i na początku gry ustawimy to tak, aby to zdrowie.

83
00:05:28,020 --> 00:05:30,720
‫Jest równy maksymalnemu zdrowiu.

84
00:05:31,140 --> 00:05:32,430
‫Więc zaczynamy od spawnu.

85
00:05:32,430 --> 00:05:35,640
‫Mamy maksymalne zdrowie i wtedy możemy zacząć się zmniejszać.

86
00:05:35,640 --> 00:05:41,550
‫Wyznacza czas na wyzwanie, aby zmniejszyć zdrowie postaci.

87
00:05:41,910 --> 00:05:48,420
‫Więc użyjesz zadanych tutaj obrażeń, a nie innej opcji tutaj.

88
00:05:48,420 --> 00:05:54,900
‫Więc nasze strzały, postać, kropka, CP otrzymują obrażenia, mamy ilość obrażeń, ale tak naprawdę chcemy, aby

89
00:05:54,900 --> 00:05:59,100
‫zadawane obrażenia, które powracają po otrzymaniu obrażeń, mogły zostać zmniejszone

90
00:05:59,100 --> 00:06:01,800
‫przez jakiś proces w rodzicu.

91
00:06:02,670 --> 00:06:03,360
‫Więc to robimy.

92
00:06:03,360 --> 00:06:10,380
‫Następnie zmniejszamy wartość zdrowia i zapisujemy wyniki dla uproszczenia, abyś mógł sprawdzić, czy strzelając

93
00:06:10,380 --> 00:06:16,020
‫do tego sojusznika, jego zdrowie spada, a następnie przetestować to.

94
00:06:16,050 --> 00:06:17,550
‫Więc zatrzymaj wideo i spróbuj.

95
00:06:17,970 --> 00:06:19,140
‫OK, witaj z powrotem.

96
00:06:19,140 --> 00:06:20,250
‫Więc spróbujmy.

97
00:06:20,670 --> 00:06:27,630
‫Tak więc zdrowie, zasadniczo chcemy je zmniejszyć o zadawane obrażenia.

98
00:06:29,290 --> 00:06:30,580
‫Ale czy to wystarczy?

99
00:06:30,910 --> 00:06:36,850
‫A co, jeśli zadane obrażenia są większe niż pozostało nam zdrowie?

100
00:06:37,420 --> 00:06:43,600
‫Cóż, w takim przypadku prawdopodobnie chcemy, aby zadawane obrażenia były równe tej ilości zdrowia.

101
00:06:44,020 --> 00:06:47,560
‫Więc sposób, w jaki możemy to zrobić, polega na tym, że możemy powiedzieć, że zadano obrażenia.

102
00:06:48,830 --> 00:06:51,940
‫Powinna być równa f kropek matematycznych.

103
00:06:51,950 --> 00:06:54,320
‫Mężczyźni zdrowia.

104
00:06:55,640 --> 00:06:57,560
‫A szkody zostały zastosowane.

105
00:06:57,980 --> 00:07:00,770
‫Więc to jest uszkodzenie, które w zasadzie chcemy zadać.

106
00:07:01,250 --> 00:07:05,990
‫Tak więc zamierzam iść dalej i zmienić nazwę, zamiast nazywać to obrażeniami zadanymi.

107
00:07:06,410 --> 00:07:09,770
‫Zamierzam to nazwać szkodą do zastosowania.

108
00:07:10,780 --> 00:07:19,480
‫Obrażenia do zastosowania, takie jak Saigon, zmień nazwę tego w tym miejscu, a następnie obrażenia, które należy zastosować przeciwko zdrowiu,

109
00:07:19,480 --> 00:07:22,120
‫pomniejszone o obrażenia, które mają sens.

110
00:07:22,120 --> 00:07:25,210
‫A w najgorszym przypadku będzie to zdrowie.

111
00:07:25,210 --> 00:07:28,030
‫Więc to sprowadzi nasze zdrowie do zera.

112
00:07:28,930 --> 00:07:32,890
‫I pamiętaj, że powinniśmy zwrócić szkody, które faktycznie zadaliśmy.

113
00:07:33,070 --> 00:07:41,710
‫Tak więc, aby przywrócić obrażenia, które teraz zostały zastosowane, i wreszcie chcemy, aby na końcu pojawił się dziennik UII, który

114
00:07:41,710 --> 00:07:45,160
‫będzie tylko ostrzeżeniem, abyśmy mogli to zobaczyć.

115
00:07:46,180 --> 00:07:54,940
‫I chcę, żeby to było zdrowie pozostawione tutaj i to będzie procent F, 2% małe F, aby pokazać

116
00:07:54,940 --> 00:07:55,720
‫pływak.

117
00:07:56,350 --> 00:08:02,770
‫A potem możemy wskoczyć do zdrowia i iść dalej i wcisnąć build.

118
00:08:04,920 --> 00:08:05,160
‫Teraz.

119
00:08:05,190 --> 00:08:08,400
‫Mój został skompilowany po naprawieniu brakującego średnika.

120
00:08:08,400 --> 00:08:15,810
‫Tutaj, chodźmy i upewnijmy się, że mamy narzędzia programistyczne dla okien i chcemy mieć tutaj dziennik wyjściowy, abyśmy mogli

121
00:08:15,840 --> 00:08:17,760
‫zobaczyć ten komunikat dziennika.

122
00:08:18,180 --> 00:08:25,650
‫I zamierzam śmiało nacisnąć przycisk odtwarzania, i spróbować strzelić do tej postaci, jeśli go zastrzelę.

123
00:08:25,670 --> 00:08:26,120
‫Proszę bardzo.

124
00:08:26,130 --> 00:08:30,150
‫Zdrowie opuściło 90, 76, t, bla, bla, bla, aż do zera.

125
00:08:30,150 --> 00:08:35,280
‫A jeśli będę dalej strzelał, nie schodzimy poniżej zera z powodu tej f matematyka kropka min.

126
00:08:35,640 --> 00:08:38,340
‫To mówi mi, że mamy prawidłowo skonfigurowane zdrowie.

127
00:08:38,340 --> 00:08:42,150
‫Po prostu inny sposób na zrobienie tego w przeciwieństwie do robienia tego w komponencie.

128
00:08:42,150 --> 00:08:46,380
‫Możesz to zrobić w aktorze, a także w niektórych zaletach i wadach tego podejścia.

129
00:08:46,740 --> 00:08:51,750
‫W końcu możesz chcieć podzielić to na osobne komponenty, aby móc je ponownie wykorzystać w różnych

130
00:08:51,750 --> 00:08:52,200
‫elementach.

131
00:08:52,500 --> 00:08:58,200
‫Ale S to tylko inny sposób, jak teraz mówię, ponieważ ta postać nie wygląda na szczególnie martwą po tym, jak

132
00:08:58,200 --> 00:08:59,970
‫zestrzeliliśmy go do zera zdrowia.

133
00:09:00,180 --> 00:09:02,910
‫Musimy poprawić animacje, aby to wspierać.

134
00:09:02,910 --> 00:09:05,940
‫Więc zobaczymy to na następnym wykładzie i do zobaczenia tam.

