﻿1
00:00:04,500 --> 00:00:05,370
‫Cześć i witaj.

2
00:00:05,370 --> 00:00:10,950
‫W tym wykładzie będziemy ustawiać chwytak, abyśmy mogli złapać nasz posąg

3
00:00:10,950 --> 00:00:15,090
‫gargulca i zabrać go ze sobą przed sobą.

4
00:00:15,390 --> 00:00:17,400
‫Zanurzmy się i zobaczmy, jak to robimy.

5
00:00:18,180 --> 00:00:24,330
‫Więc nadszedł czas, abyśmy zaczęli nazywać alokację komponentu grab z rotacją.

6
00:00:24,570 --> 00:00:26,760
‫Jak powiedziałem wcześniej, w rzeczywistości są to dwie części.

7
00:00:26,760 --> 00:00:34,050
‫Musimy chwycić komponent, a następnie ustawić jego docelową lokalizację i obrót, aby

8
00:00:34,440 --> 00:00:36,000
‫się poruszał.

9
00:00:36,210 --> 00:00:37,440
‫Więc najpierw rzeczy pierwsze.

10
00:00:37,440 --> 00:00:44,310
‫W naszej funkcji chwytania będziemy musieli zdobyć wskaźnik do naszego uchwytu fizyki.

11
00:00:44,730 --> 00:00:50,760
‫Więc skopiuję wiersz z Begin Play i przejdę do chwytaka i wstawię go

12
00:00:50,760 --> 00:00:51,510
‫tutaj.

13
00:00:51,750 --> 00:00:55,710
‫I uchronić się przed tym, że jest to nieważne.

14
00:00:55,980 --> 00:00:57,270
‫Cóż, co powinno się stać?

15
00:00:57,570 --> 00:01:00,270
‫Cóż, właściwie nie ma nic, co chcielibyśmy zrobić.

16
00:01:00,270 --> 00:01:02,820
‫Jeśli nie mamy uchwytu fizyki, nie możemy niczego uchwycić.

17
00:01:03,270 --> 00:01:09,450
‫Moglibyśmy więc umieścić całe ciało tej funkcji chwytania w instrukcji if, ale może to wyglądać trochę

18
00:01:09,450 --> 00:01:10,170
‫niechlujnie.

19
00:01:10,200 --> 00:01:13,560
‫Zamiast tego możemy zrobić coś, co nazywamy wczesnym powrotem.

20
00:01:13,800 --> 00:01:18,420
‫Zasadniczo mówimy po prostu, czy fizyka sobie poradzi.

21
00:01:19,460 --> 00:01:21,680
‫Równa się równa się null wskaźnik.

22
00:01:21,710 --> 00:01:23,750
‫W tym miejscu należy umieścić podwójny znak równości.

23
00:01:23,750 --> 00:01:25,190
‫W przeciwnym razie to zadanie.

24
00:01:25,820 --> 00:01:32,330
‫Potem możemy zejść na dół, żeby zrobić kilka aparatów ortodontycznych i możemy po prostu wstawić tutaj zwrot.

25
00:01:32,600 --> 00:01:38,210
‫Więc co to zrobi, to jeśli mamy zerowe punkty dla uchwytu fizyki, to wraca od

26
00:01:38,210 --> 00:01:43,460
‫razu i nie wykonuje reszty funkcji, dzięki czemu korzystanie z fizyki w pozostałej części

27
00:01:43,760 --> 00:01:46,580
‫funkcji jest bezpieczne. obsłużyć jak chcemy.

28
00:01:47,420 --> 00:01:48,960
‫Więc zamierzamy to zrobić.

29
00:01:48,980 --> 00:01:51,960
‫Zejdziemy tam, gdzie mamy trafienie.

30
00:01:52,000 --> 00:01:54,350
‫Myślę, że nie potrzebujemy już tych komunikatów dziennika.

31
00:01:54,350 --> 00:01:55,880
‫Więc zamierzam usunąć instrukcje alt.

32
00:01:56,240 --> 00:02:02,990
‫Usunę w zasadzie wszystko z treści instrukcji F i użyjemy naszego

33
00:02:02,990 --> 00:02:03,740
‫grabbera.

34
00:02:04,100 --> 00:02:12,770
‫Więc zrobimy fizykę uchwytu do chwytania komponentów strzałek w miejscu z obrotem.

35
00:02:13,070 --> 00:02:16,790
‫Następnie musimy dostarczyć mu komponent, który próbujemy pobrać.

36
00:02:17,060 --> 00:02:22,210
‫Jeśli spojrzysz, to czego oczekuje, to prymitywne komponenty.

37
00:02:22,220 --> 00:02:26,960
‫Zobaczmy, czy mamy coś podobnego w naszym wyniku trafienia.

38
00:02:27,310 --> 00:02:33,710
‫Po prostu wskoczę na stronę dokumentacji i poszukam podstawowych komponentów, a zobaczysz, że

39
00:02:33,710 --> 00:02:38,580
‫komponent get zwróci Ci prymitywny komponent, który został trafiony.

40
00:02:38,630 --> 00:02:39,230
‫Idealny.

41
00:02:39,230 --> 00:02:40,070
‫Właśnie tego potrzebujemy.

42
00:02:40,430 --> 00:02:47,240
‫Musieliśmy więc poszukać składowych wyniku trafienia kropka pobierz, a to da nam to, czego

43
00:02:47,240 --> 00:02:49,370
‫chcemy dla pierwszego argumentu.

44
00:02:50,120 --> 00:02:53,870
‫Teraz następna jest nazwa F dla łuku.

45
00:02:53,930 --> 00:02:57,380
‫Teraz tak naprawdę nie chcemy chwytać niczego za konkretną kość.

46
00:02:57,390 --> 00:03:01,600
‫Byłoby tak w przypadku, gdybyśmy mieli siatkę szkieletową, ale nie mamy.

47
00:03:01,610 --> 00:03:06,320
‫Mamy statyczną siatkę, więc po prostu używamy nazwy bez podkreślenia.

48
00:03:06,770 --> 00:03:10,970
‫I ogólnie rzecz biorąc, przy nazwach F, w których mówimy o kościach, to wychodzi całkiem często.

49
00:03:11,240 --> 00:03:15,170
‫Jeśli nie chcesz niczego wstawiać, użyj nazwy, żadnego podkreślenia.

50
00:03:15,380 --> 00:03:18,320
‫Teraz potrzebujemy lokalizacji, w której zamierzamy go pobrać.

51
00:03:18,320 --> 00:03:20,230
‫A już powiedzieliśmy, że przyjrzeliśmy się temu.

52
00:03:20,240 --> 00:03:29,270
‫Jest to punkt uderzenia kropki w wyniku trafienia, a następnie rotacja, bieżąca rotacja tego komponentu wykona

53
00:03:29,270 --> 00:03:32,930
‫całą bieżącą rotację aktora, cokolwiek wolisz.

54
00:03:33,290 --> 00:03:35,360
‫Tak więc wyniki trafień otrzymują komponenty.

55
00:03:35,360 --> 00:03:37,070
‫Zbierzemy te wyniki.

56
00:03:37,340 --> 00:03:41,260
‫Pobierz strzałkę z kropką komponentu, ponieważ jest to wskaźnik.

57
00:03:41,630 --> 00:03:45,770
‫Uzyskaj rotację komponentów jak.

58
00:03:45,770 --> 00:03:52,370
‫Więc teraz może umieścić nawiasy zamykające w osobnym wierszu, a ja umieszczę średnik kończący

59
00:03:52,370 --> 00:03:56,690
‫instrukcję, co powinno być skuteczne w uchwyceniu naszych komponentów.

60
00:03:56,900 --> 00:04:04,100
‫Teraz kolejna część układanki znajduje się w składniku tiku, w którym chcemy ponownie użyć uchwytu fizyki.

61
00:04:04,100 --> 00:04:10,130
‫Więc zamierzam na razie skopiować kod, wiedząc, że kopiowanie kodu do trzech miejsc to trochę za dużo,

62
00:04:10,130 --> 00:04:15,170
‫i możemy pomyśleć o wyciągnięciu go do funkcji, abyśmy mogli go ponownie wykorzystać.

63
00:04:15,470 --> 00:04:17,330
‫Ale komponenty wlotowe będą używać uchwytu fizyki.

64
00:04:17,330 --> 00:04:22,070
‫Wrócimy wcześniej, jeśli nie zdołamy zdobyć uchwytu fizyki.

65
00:04:22,550 --> 00:04:26,300
‫A potem spróbujemy ustawić docelowe lokalizacje.

66
00:04:26,300 --> 00:04:35,090
‫Zamierzam zrobić uchwyt fizyki, zestaw strzałek, lokalizację docelową i obrót.

67
00:04:35,390 --> 00:04:37,280
‫I zastanówmy się trochę.

68
00:04:37,280 --> 00:04:42,110
‫Jaką lokalizację docelową moglibyśmy ustalić?

69
00:04:42,320 --> 00:04:46,100
‫Cóż, zasadniczo będzie tak samo, jak w przypadku punktu końcowego.

70
00:04:46,100 --> 00:04:52,250
‫Zamierzamy zająć naszą obecną lokalizację, a następnie przesunąć ją na zewnątrz w kierunku do przodu o określoną

71
00:04:52,250 --> 00:04:52,820
‫odległość.

72
00:04:53,150 --> 00:04:54,530
‫Teraz będzie to konfigurowalne.

73
00:04:54,530 --> 00:05:00,020
‫Możesz użyć maksymalnej odległości chwytania, ale w praktyce wydaje mi się, że jest to zbyt daleko.

74
00:05:00,350 --> 00:05:05,810
‫Więc jeśli pójdziemy do naszego Dziadka Dot H, stworzymy nową, nową właściwość o nazwie Edit Anywhere.

75
00:05:06,110 --> 00:05:09,920
‫I będzie to pływak zwany odległością trzymania.

76
00:05:10,280 --> 00:05:12,500
‫I ustawię to na 200.

77
00:05:12,500 --> 00:05:15,080
‫Więc będzie znacznie bliżej gracza.

78
00:05:15,290 --> 00:05:20,810
‫Teraz, jeśli zamierzamy pobrać CP, możemy przejść do funkcji take i spróbować stworzyć ten cel.

79
00:05:20,810 --> 00:05:25,970
‫Lokalizacja musi być wektorem F zwanym lokalizacją docelową.

80
00:05:26,780 --> 00:05:37,250
‫Ustawimy to jako równe pobraniu lokalizacji komponentu plus wektor przejścia do przodu pomnożony

81
00:05:37,250 --> 00:05:39,740
‫przez odległość przetrzymania.

82
00:05:40,400 --> 00:05:42,320
‫Więc możemy użyć tego jako lokalizacji docelowej.

83
00:05:42,320 --> 00:05:47,660
‫To będzie nasz pierwszy argument, a potem potrzebujemy docelowej rotacji.

84
00:05:47,960 --> 00:05:54,620
‫Cóż, w tym celu użyję po prostu rotacji bieżącego komponentu, tak że gdy

85
00:05:54,980 --> 00:06:03,290
‫się rozejrzymy, obrócimy obiekt za pomocą naszego widoku, abyśmy mogli po prostu wykonać obrót pobierania komponentu,

86
00:06:03,290 --> 00:06:07,180
‫aby uzyskać obrót obecny komponent sceny grabbera.

87
00:06:07,400 --> 00:06:12,830
‫Fajnie umieść średnik na końcu tej linii, przekompiluj i zobacz, jak to działa.

88
00:06:13,040 --> 00:06:17,750
‫Teraz, po pomyślnej kompilacji, wybierzmy gargulca i po prostu upewnijmy się, że zmieniliśmy jego

89
00:06:17,750 --> 00:06:18,910
‫mobilność z START.

90
00:06:19,040 --> 00:06:25,040
‫Pomyśl o ruchomym, ponieważ potrzebujemy go, aby móc poruszać się w odpowiedzi na fizykę i upewnijmy się,

91
00:06:25,040 --> 00:06:26,260
‫że symuluje fizykę.

92
00:06:26,270 --> 00:06:31,640
‫Przejdźmy do kategorii fizyki i sprawdźmy przycisk symulacji fizyki.

93
00:06:31,850 --> 00:06:34,730
‫Zagrajmy i spróbujmy go podnieść.

94
00:06:34,880 --> 00:06:39,500
‫W tej chwili nic się nie dzieje, ale wydaje się, że utknął w podłodze, więc nie jest to idealne

95
00:06:39,500 --> 00:06:39,940
‫rozwiązanie.

96
00:06:39,950 --> 00:06:43,490
‫Spróbujmy go nieco podnieść, aby nie utknął w podłodze.

97
00:06:44,060 --> 00:06:47,570
‫Niech spadnie w ten sposób na podłogę, a teraz spróbuj go podnieść.

98
00:06:47,790 --> 00:06:50,290
‫Wygląda na to, że znowu utknął w podłodze.

99
00:06:50,300 --> 00:06:52,490
‫Więc spróbujmy po raz drugi.

100
00:06:52,760 --> 00:06:53,120
‫Dobra.

101
00:06:53,120 --> 00:06:59,570
‫Jest więc trochę zawodny i czasami, jeśli złapiesz go od razu, dobrze podniesie gargulca

102
00:06:59,630 --> 00:07:03,380
‫i możesz go podnieść w ten sposób.

103
00:07:03,380 --> 00:07:10,670
‫Zauważyłem, że rotacja nie jest prawidłowa, a to dlatego, że użyłem niewłaściwej rzeczy podczas chwytania komponentu

104
00:07:10,670 --> 00:07:11,450
‫fizyki.

105
00:07:11,450 --> 00:07:17,540
‫Mam rotację gargulca i teraz staramy się, aby ta rotacja, której faktycznie

106
00:07:17,870 --> 00:07:23,240
‫potrzebowałem, była rotacją, której używamy, biorąc pod uwagę rotację chwytaka.

107
00:07:23,510 --> 00:07:29,210
‫Więc chodźmy dalej, zmieńmy to i przekompilujmy, a po prostu ponownie wciśniemy play i spróbujemy go pobrać.

108
00:07:29,210 --> 00:07:29,780
‫Proszę bardzo.

109
00:07:30,050 --> 00:07:35,120
‫Tym razem chwyciłem go i uzyskałem prawidłową rotację, dokładną rotację, którą miał.

110
00:07:35,480 --> 00:07:39,290
‫I widać, że wygląda, jakby ktoś chwycił go sprężyną.

111
00:07:39,290 --> 00:07:44,630
‫Jeśli spróbuję przepchnąć go przez ścianę, stara się nie przechodzić przez ścianę tak bardzo, jak może.

112
00:07:44,630 --> 00:07:52,000
‫W końcu przebija się przez ścianę, ale próbuje obserwować fizykę, gdy ją poruszam.

113
00:07:52,130 --> 00:07:56,840
‫Więc rzućmy wyzwanie teraz, aby wyciągnąć nową funkcję o nazwie pobierz uchwyt fizyki.

114
00:07:56,840 --> 00:07:57,830
‫To będzie prywatne.

115
00:07:58,160 --> 00:07:59,270
‫Powinien zwrócić U.

116
00:07:59,270 --> 00:08:04,130
‫Fizyka obsługuje komponent i powinna usunąć ten zduplikowany kod konieczności uzyskania właściciela i

117
00:08:04,130 --> 00:08:05,810
‫znalezienia komponentu według klasy.

118
00:08:06,170 --> 00:08:11,360
‫Możesz także nawiązać z nim potencjalny kontakt, sprawdzić, czy możesz, i sprawić, by się zarejestrował.

119
00:08:11,360 --> 00:08:16,850
‫Jeśli nie mamy komponentu uchwytu fizyki, daj dziennik ostrzegawczy, aby się pojawił i wiedzieli, że zrobiliśmy

120
00:08:16,850 --> 00:08:17,810
‫coś złego.

121
00:08:18,200 --> 00:08:19,940
‫Wstrzymaj wideo i spróbuj.

122
00:08:23,860 --> 00:08:24,190
‫Dobra.

123
00:08:24,190 --> 00:08:24,700
‫Witamy spowrotem.

124
00:08:24,730 --> 00:08:29,260
‫Przede wszystkim przechodzimy do nagłówka pliku, w którym umieścimy to w sekcji prywatnej.

125
00:08:29,260 --> 00:08:37,150
‫Ale pod właściwościami chcę, żeby zwróciła trochę fizyki, obsługiwała komponenty i umieściła tutaj

126
00:08:37,150 --> 00:08:38,050
‫gwiazdkę.

127
00:08:38,440 --> 00:08:46,240
‫Teraz, ponieważ używamy tego typu tutaj w nagłówku, musimy wziąć nasze dołączanie i wyciąć je

128
00:08:46,240 --> 00:08:47,680
‫z chwytaka.

129
00:08:47,680 --> 00:08:52,930
‫Tak więc, jeśli chodzi o uchwyt fizyki, musimy umieścić go w kropki chwytaka h,

130
00:08:52,930 --> 00:08:55,630
‫gdzie zamierzamy umieścić go nad wygenerowanym h.

131
00:08:55,630 --> 00:08:58,360
‫To ostatnia rzecz zawsze w naszych aktach.

132
00:08:58,780 --> 00:09:01,600
‫A dlaczego nie potrzebujemy go również w PK?

133
00:09:01,900 --> 00:09:07,270
‫Cóż, ponieważ uwzględniamy Grab lub H, więc wszystko, co włożymy, chwyć to lub H

134
00:09:07,270 --> 00:09:11,680
‫automatycznie znajdzie się w CP, więc możemy umieścić to w nim.

135
00:09:12,340 --> 00:09:20,140
‫Teraz możemy zejść do miejsca, w którym definiujemy tę funkcję i nazwać ją tak, aby uzyskać fizykę obsługi

136
00:09:20,140 --> 00:09:21,430
‫mocy nawiasów.

137
00:09:21,910 --> 00:09:29,110
‫I myślę, że to powinno być stałe, nie powinno zmieniać niczego w naszym grabberze, aby wywołać tę funkcję.

138
00:09:29,650 --> 00:09:37,540
‫Po prostu przejdź do PK, idź na dół, gdzie zamierzam wkleić definicję,

139
00:09:37,570 --> 00:09:45,970
‫przykleję ci okrężnicę z przodu, a potem usuwam średnik, dodając parę nawiasów klamrowych.

140
00:09:46,420 --> 00:09:54,190
‫A to, co chcemy zrobić, to wziąć miejsce, w którym mamy to get on-line i po prostu to

141
00:09:54,190 --> 00:09:56,800
‫wyciąć i zastąpić fizyką pobierania.

142
00:09:58,050 --> 00:10:00,140
‫Uchwyt jak mydło.

143
00:10:00,360 --> 00:10:07,350
‫A następnie w uchwycie pobierania fizyki możemy po prostu zwrócić komponent znajdowania właściciela według klasy itp.

144
00:10:07,560 --> 00:10:13,050
‫A teraz możemy zastąpić to również, gdy robimy to w składniku tikowym, zdobywamy uchwyt

145
00:10:13,050 --> 00:10:13,500
‫fizyki.

146
00:10:13,950 --> 00:10:18,660
‫Zastąpmy ten mały fragment kodu poleceniem zdobądź fizykę.

147
00:10:19,080 --> 00:10:22,860
‫Teraz jest to taki mały kawałek kodu, prawie nie jest tego wart, ale zdecydowanie jest

148
00:10:22,860 --> 00:10:27,810
‫tego wart ze względu na praktykę w tym momencie i fakt, że możemy teraz dodać kilka komunikatów dziennika i zacząć grać.

149
00:10:27,810 --> 00:10:32,760
‫Właściwie nie musimy w ogóle obsługiwać fizyki, więc po prostu usunę tam ten kod.

150
00:10:33,180 --> 00:10:37,080
‫Ale zamierzam dodać komunikat dziennika.

151
00:10:37,440 --> 00:10:44,040
‫Stworzymy więc zmienną do przechowywania naszego wyniku tutaj, ponieważ jeśli wrócimy, a następnie spróbujemy wydrukować komunikat

152
00:10:44,040 --> 00:10:45,780
‫dziennika, to nie zadziała.

153
00:10:46,140 --> 00:10:50,100
‫Tak więc będziemy mieli nowy komponent uchwytu fizyki o nazwie wynik.

154
00:10:51,180 --> 00:11:00,270
‫To znaczy, że wrócimy stąd i powiemy, jeśli wynik jest równy null pointerowi, cóż, to potrzebujemy

155
00:11:00,270 --> 00:11:06,120
‫nowego dziennika z ostrzeżeniem lub w rzeczywistości błędem, naprawdę.

156
00:11:06,540 --> 00:11:12,270
‫I powiemy, że grabber wymaga nowego komponentu uchwytu fizyki.

157
00:11:12,840 --> 00:11:14,700
‫A potem po stwierdzeniu if.

158
00:11:14,700 --> 00:11:15,780
‫Więc tak się stanie.

159
00:11:15,780 --> 00:11:21,030
‫Niezależnie od tego, czy jest null, czy nie, zwrócimy wynik.

160
00:11:21,330 --> 00:11:23,610
‫Więc chodźmy dalej, skompilujmy to i sprawdźmy, czy wszystko działa.

161
00:11:23,970 --> 00:11:30,960
‫Wygląda na to, że się udało i widzę, że to musi działać, ponieważ kiedy kliknąłem lewym przyciskiem

162
00:11:30,960 --> 00:11:37,230
‫myszy, otrzymuję rysowanie niebieskich lub debugowanych kul i nie zostałyby narysowane, gdybyśmy tego nie zdobyli.

163
00:11:37,230 --> 00:11:38,640
‫Fizyka obsługuje komponenty.

164
00:11:38,760 --> 00:11:39,330
‫Świetna sprawa.

165
00:11:39,330 --> 00:11:45,990
‫Tak więc w tym wykładzie udało nam się złapać nasz posąg gargulca za pomocą naszego chwytaka, chociaż czasami

166
00:11:45,990 --> 00:11:48,090
‫może to być trochę zawodne.

167
00:11:48,090 --> 00:11:52,110
‫Zajmiemy się tym na nadchodzących wykładach, więc do zobaczenia.

