﻿1
00:00:04,400 --> 00:00:05,180
‫Cześć i witaj.

2
00:00:05,180 --> 00:00:12,050
‫W tym wykładzie będziemy refaktoryzować nasz kod, aby nasza funkcja grab była mniejsza i bardziej

3
00:00:12,050 --> 00:00:12,770
‫czytelna.

4
00:00:12,770 --> 00:00:15,170
‫I znowu będziemy używać parametrów.

5
00:00:15,290 --> 00:00:18,770
‫Tym razem zamierzamy stworzyć funkcję, która przyjmuje ją jako parametr.

6
00:00:18,770 --> 00:00:21,110
‫Zanurzmy się i zobaczmy, jak to zrobić.

7
00:00:22,160 --> 00:00:29,030
‫Tak więc ogólnie najlepszą praktyką jest, aby funkcje próbowały zmieścić się na jednym ekranie.

8
00:00:29,060 --> 00:00:31,190
‫Teraz w moim przypadku mój ekran jest bardzo duży.

9
00:00:31,460 --> 00:00:32,720
‫Ale wciąż się uczymy.

10
00:00:32,720 --> 00:00:37,250
‫Więc faktycznie ma sens posiadanie jeszcze mniejszych funkcji, aby wszystko było zrozumiałe.

11
00:00:38,060 --> 00:00:46,040
‫I myślę, że ta funkcja chwytania jest zbyt długa, więc myślę, że możemy podzielić ją na całkiem funkcjonalne jednostki.

12
00:00:46,040 --> 00:00:52,160
‫Pierwszym z nich będzie bit, który wykonuje przemiatanie i wykonuje wszystkie obliczenia wektorów początkowego

13
00:00:52,160 --> 00:00:57,710
‫i końcowego oraz wyświetla wynik trafienia i czy trafiliśmy, czy nie.

14
00:00:57,710 --> 00:01:03,110
‫Wartość logiczna, która mówi, czy trafiliśmy, a drugi bit, znajduje się w instrukcji

15
00:01:03,110 --> 00:01:08,900
‫if, którą prawdopodobnie możemy zostawić jako zadanie chwytania, ponieważ ma to związek z chwytaniem, prawda?

16
00:01:08,900 --> 00:01:10,730
‫Musimy obudzić sztywne ciało.

17
00:01:10,730 --> 00:01:16,190
‫Musimy pobrać komponent, który ma sens jako metoda wywoływana w funkcji o nazwie grab.

18
00:01:16,550 --> 00:01:20,150
‫Ale te inne rzeczy są trochę bardziej styczne.

19
00:01:20,150 --> 00:01:23,450
‫To bardziej narzędzie, które musimy wciągnąć.

20
00:01:23,780 --> 00:01:28,550
‫Więc chciałbym rzucić wyzwanie, aby stworzyć tę użyteczność, złapać piłkę w zasięgu.

21
00:01:28,550 --> 00:01:33,110
‫Myślę, że tak powinno się to nazywać, rzecz, która opisuje, co robi ten fragment kodu.

22
00:01:33,380 --> 00:01:40,220
‫Wyodrębnij więc cały ten kod wobulacji do nowej funkcji prywatnej, jak zastanowić się, jakie powinny być jej parametry

23
00:01:40,220 --> 00:01:41,540
‫i wartość zwracana.

24
00:01:41,540 --> 00:01:43,490
‫Pamiętaj, masz dwa wyjścia.

25
00:01:43,760 --> 00:01:46,460
‫Więc mamy hit i hit wynik.

26
00:01:46,850 --> 00:01:51,650
‫Musisz więc pomyśleć o próbie użycia parametru out, aby to zadziałało.

27
00:01:52,160 --> 00:01:58,040
‫Teraz, jeśli chcesz trochę podpowiedzi, pokażę ci, co zamierzam umieścić w pliku nagłówkowym za

28
00:01:58,250 --> 00:01:58,940
‫chwilę.

29
00:01:58,940 --> 00:02:01,280
‫Jeśli tego nie zrobisz, możesz teraz wstrzymać wideo.

30
00:02:01,850 --> 00:02:04,040
‫W przeciwnym razie dam ci podpowiedź.

31
00:02:04,790 --> 00:02:10,820
‫Więc przejdziemy do złapania kropki i poniżej miejsca, w którym musimy

32
00:02:11,210 --> 00:02:18,330
‫zająć się fizycznie, będziemy mieli typ boolowski, aby powiedzieć nam, czy coś ma,

33
00:02:18,360 --> 00:02:27,020
‫możemy coś dostać, chwyćmy dobrze, chwyćmy piłka w zasięgu, to musimy nadać jej parametr, który będzie parametrem

34
00:02:27,020 --> 00:02:27,590
‫wyjściowym.

35
00:02:27,620 --> 00:02:35,360
‫Więc będzie to niestałe odniesienie do wyniku trafienia F na odwołanie.

36
00:02:36,530 --> 00:02:41,240
‫Ampersand, a następnie nazwiemy wynik trafienia alt w ten sposób.

37
00:02:41,420 --> 00:02:49,130
‫A potem myślę, że to nie zmieni niczego w naszej funkcji, więc możemy również uczynić ją stałą.

38
00:02:49,280 --> 00:02:51,980
‫To trochę punktów bonusowych, jeśli już o tym pomyślałeś.

39
00:02:52,580 --> 00:02:57,620
‫Więc śmiało, wstrzymaj, nagraj wideo i spróbuj wypełnić tę funkcję w pliku C++.

40
00:03:01,030 --> 00:03:01,390
‫Dobra.

41
00:03:01,390 --> 00:03:02,120
‫Witamy spowrotem.

42
00:03:02,140 --> 00:03:04,720
‫Więc skopiuję to do C++.

43
00:03:05,050 --> 00:03:10,870
‫Umieszczę go pod naszym komponentem uchwytu fizyki, aby dopasować kolejność, którą opracowaliśmy w pliku

44
00:03:10,870 --> 00:03:11,560
‫nagłówkowym.

45
00:03:12,040 --> 00:03:16,630
‫Dodam chwytak U z przodu.

46
00:03:17,050 --> 00:03:18,460
‫Poprawię wcięcie.

47
00:03:18,490 --> 00:03:25,030
‫Dodam zamiast średnika nawiasy klamrowe, a następnie przeniosę kod,

48
00:03:25,030 --> 00:03:26,800
‫który przerobiliśmy.

49
00:03:26,860 --> 00:03:31,270
‫Więc zaczynając od linii 53 dla mnie, aż do 65.

50
00:03:31,690 --> 00:03:33,250
‫Wyeliminuję to wszystko.

51
00:03:34,150 --> 00:03:35,920
‫Zamienię to na coś w sekundę.

52
00:03:36,340 --> 00:03:40,540
‫Wkleję to, żeby złapać piłkę w zasięgu.

53
00:03:41,140 --> 00:03:44,660
‫I mamy ten hit, który stworzyliśmy.

54
00:03:44,680 --> 00:03:53,290
‫To, co możemy zrobić, to ustalić, że wyniki trafień są równe naszemu wynikowi trafienia, który mamy tutaj.

55
00:03:53,680 --> 00:04:00,970
‫Możemy chcieć to zrobić tylko wtedy, gdy trafiliśmy dwa, więc możemy umieścić, że instrukcja if trafiła w

56
00:04:00,970 --> 00:04:08,080
‫ten sposób i zawinąć to przypisanie, trafienia wychodzące do trafienia zostaną umieszczone w instrukcji if, a następnie

57
00:04:08,080 --> 00:04:15,700
‫możemy przejść dalej i na koniec funkcji, po prostu uderzył powrót, tak teraz jest optymalizacja lub ulepszenie, które

58
00:04:15,700 --> 00:04:22,690
‫można tutaj wprowadzić, ponieważ przechodzimy przez odniesienie do kanału wobulacji i do chwytania piłki w

59
00:04:22,690 --> 00:04:23,200
‫zasięgu.

60
00:04:23,200 --> 00:04:28,930
‫Właściwie nie musimy tworzyć tutaj nowego wyniku trafienia, a następnie kopiować go do wyniku trafienia.

61
00:04:28,930 --> 00:04:30,070
‫To tylko marnowanie pamięci.

62
00:04:30,790 --> 00:04:36,190
‫To, co możemy zrobić, to usunąć efekt trafienia, który tworzymy w środku, aby złapać piłkę w zasięgu.

63
00:04:36,640 --> 00:04:44,050
‫Zamiast tego możemy po prostu użyć referencji, którą przekazaliśmy, aby przejść bezpośrednio do wobulacji pojedynczo po

64
00:04:44,050 --> 00:04:44,920
‫kanale.

65
00:04:44,930 --> 00:04:50,380
‫Tak więc w rzeczywistości przekazuje to odniesienie do funkcji w dół do przemiatania pojedynczo po kanale,

66
00:04:50,380 --> 00:04:51,460
‫gdzie zostanie zapełnione.

67
00:04:51,820 --> 00:04:57,160
‫To eliminuje potrzebę instrukcji if, czyniąc tę funkcję nieco szybszą i łatwiejszą do

68
00:04:57,160 --> 00:04:57,700
‫odczytania.

69
00:04:57,970 --> 00:05:01,510
‫Właściwie nie sądzę, abyśmy potrzebowali zmiennej do przechowywania trafień.

70
00:05:01,510 --> 00:05:03,720
‫Możemy po prostu iść dalej i wracać.

71
00:05:03,730 --> 00:05:09,670
‫Zwrócenie wyników kanału Get World Suite będzie znacznie czystsze.

72
00:05:09,670 --> 00:05:16,030
‫Więc po prostu przekazujemy wyniki z tego z powrotem, aby móc je chwycić lub ktokolwiek to

73
00:05:16,030 --> 00:05:16,840
‫nazywa.

74
00:05:17,170 --> 00:05:21,900
‫Mówiąc o tym, kto to woła, musimy teraz wejść w nasz chwyt.

75
00:05:21,910 --> 00:05:24,610
‫Musimy gdzieś stworzyć nasz wynik trafienia.

76
00:05:24,610 --> 00:05:25,630
‫Musimy to tutaj stworzyć.

77
00:05:25,630 --> 00:05:27,910
‫Więc wynik trafienia, to jest ten, który zamierzamy wypełnić.

78
00:05:28,420 --> 00:05:34,930
‫Następnie stworzymy genialną zmienną, która będzie miała wartość trafienia, która będzie równa

79
00:05:34,930 --> 00:05:42,100
‫temu, że złapiesz piłkę w zasięgu i przekażemy wynik trafienia przez odniesienie, które chcemy

80
00:05:42,100 --> 00:05:42,970
‫wypełnić.

81
00:05:43,390 --> 00:05:49,000
‫A potem, jeśli trafiliśmy, będziemy kontynuować i wykonać kod przechwytujący.

82
00:05:49,360 --> 00:05:50,260
‫Fantastyczne rzeczy.

83
00:05:50,260 --> 00:05:56,560
‫Przenieśliśmy w nim coś do funkcji, aby ta funkcja chwytania zmieściła się na jednym ekranie.

84
00:05:56,560 --> 00:06:04,030
‫I znowu skorzystaliśmy z naszych parametrów, tym razem tworząc dla siebie funkcję, która używa ich na

85
00:06:04,030 --> 00:06:04,960
‫poważnie.

86
00:06:05,170 --> 00:06:07,060
‫Do zobaczenia w następnym filmie.

