‫Cześć i witaj.
‫W tym wykładzie będziemy refaktoryzować nasz kod, aby nasza funkcja grab była mniejsza i bardziej
‫czytelna.
‫I znowu będziemy używać parametrów.
‫Tym razem zamierzamy stworzyć funkcję, która przyjmuje ją jako parametr.
‫Zanurzmy się i zobaczmy, jak to zrobić.
‫Tak więc ogólnie najlepszą praktyką jest, aby funkcje próbowały zmieścić się na jednym ekranie.
‫Teraz w moim przypadku mój ekran jest bardzo duży.
‫Ale wciąż się uczymy.
‫Więc faktycznie ma sens posiadanie jeszcze mniejszych funkcji, aby wszystko było zrozumiałe.
‫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.
‫Pierwszym z nich będzie bit, który wykonuje przemiatanie i wykonuje wszystkie obliczenia wektorów początkowego
‫i końcowego oraz wyświetla wynik trafienia i czy trafiliśmy, czy nie.
‫Wartość logiczna, która mówi, czy trafiliśmy, a drugi bit, znajduje się w instrukcji
‫if, którą prawdopodobnie możemy zostawić jako zadanie chwytania, ponieważ ma to związek z chwytaniem, prawda?
‫Musimy obudzić sztywne ciało.
‫Musimy pobrać komponent, który ma sens jako metoda wywoływana w funkcji o nazwie grab.
‫Ale te inne rzeczy są trochę bardziej styczne.
‫To bardziej narzędzie, które musimy wciągnąć.
‫Więc chciałbym rzucić wyzwanie, aby stworzyć tę użyteczność, złapać piłkę w zasięgu.
‫Myślę, że tak powinno się to nazywać, rzecz, która opisuje, co robi ten fragment kodu.
‫Wyodrębnij więc cały ten kod wobulacji do nowej funkcji prywatnej, jak zastanowić się, jakie powinny być jej parametry
‫i wartość zwracana.
‫Pamiętaj, masz dwa wyjścia.
‫Więc mamy hit i hit wynik.
‫Musisz więc pomyśleć o próbie użycia parametru out, aby to zadziałało.
‫Teraz, jeśli chcesz trochę podpowiedzi, pokażę ci, co zamierzam umieścić w pliku nagłówkowym za
‫chwilę.
‫Jeśli tego nie zrobisz, możesz teraz wstrzymać wideo.
‫W przeciwnym razie dam ci podpowiedź.
‫Więc przejdziemy do złapania kropki i poniżej miejsca, w którym musimy
‫zająć się fizycznie, będziemy mieli typ boolowski, aby powiedzieć nam, czy coś ma,
‫możemy coś dostać, chwyćmy dobrze, chwyćmy piłka w zasięgu, to musimy nadać jej parametr, który będzie parametrem
‫wyjściowym.
‫Więc będzie to niestałe odniesienie do wyniku trafienia F na odwołanie.
‫Ampersand, a następnie nazwiemy wynik trafienia alt w ten sposób.
‫A potem myślę, że to nie zmieni niczego w naszej funkcji, więc możemy również uczynić ją stałą.
‫To trochę punktów bonusowych, jeśli już o tym pomyślałeś.
‫Więc śmiało, wstrzymaj, nagraj wideo i spróbuj wypełnić tę funkcję w pliku C++.
‫Dobra.
‫Witamy spowrotem.
‫Więc skopiuję to do C++.
‫Umieszczę go pod naszym komponentem uchwytu fizyki, aby dopasować kolejność, którą opracowaliśmy w pliku
‫nagłówkowym.
‫Dodam chwytak U z przodu.
‫Poprawię wcięcie.
‫Dodam zamiast średnika nawiasy klamrowe, a następnie przeniosę kod,
‫który przerobiliśmy.
‫Więc zaczynając od linii 53 dla mnie, aż do 65.
‫Wyeliminuję to wszystko.
‫Zamienię to na coś w sekundę.
‫Wkleję to, żeby złapać piłkę w zasięgu.
‫I mamy ten hit, który stworzyliśmy.
‫To, co możemy zrobić, to ustalić, że wyniki trafień są równe naszemu wynikowi trafienia, który mamy tutaj.
‫Możemy chcieć to zrobić tylko wtedy, gdy trafiliśmy dwa, więc możemy umieścić, że instrukcja if trafiła w
‫ten sposób i zawinąć to przypisanie, trafienia wychodzące do trafienia zostaną umieszczone w instrukcji if, a następnie
‫możemy przejść dalej i na koniec funkcji, po prostu uderzył powrót, tak teraz jest optymalizacja lub ulepszenie, które
‫można tutaj wprowadzić, ponieważ przechodzimy przez odniesienie do kanału wobulacji i do chwytania piłki w
‫zasięgu.
‫Właściwie nie musimy tworzyć tutaj nowego wyniku trafienia, a następnie kopiować go do wyniku trafienia.
‫To tylko marnowanie pamięci.
‫To, co możemy zrobić, to usunąć efekt trafienia, który tworzymy w środku, aby złapać piłkę w zasięgu.
‫Zamiast tego możemy po prostu użyć referencji, którą przekazaliśmy, aby przejść bezpośrednio do wobulacji pojedynczo po
‫kanale.
‫Tak więc w rzeczywistości przekazuje to odniesienie do funkcji w dół do przemiatania pojedynczo po kanale,
‫gdzie zostanie zapełnione.
‫To eliminuje potrzebę instrukcji if, czyniąc tę funkcję nieco szybszą i łatwiejszą do
‫odczytania.
‫Właściwie nie sądzę, abyśmy potrzebowali zmiennej do przechowywania trafień.
‫Możemy po prostu iść dalej i wracać.
‫Zwrócenie wyników kanału Get World Suite będzie znacznie czystsze.
‫Więc po prostu przekazujemy wyniki z tego z powrotem, aby móc je chwycić lub ktokolwiek to
‫nazywa.
‫Mówiąc o tym, kto to woła, musimy teraz wejść w nasz chwyt.
‫Musimy gdzieś stworzyć nasz wynik trafienia.
‫Musimy to tutaj stworzyć.
‫Więc wynik trafienia, to jest ten, który zamierzamy wypełnić.
‫Następnie stworzymy genialną zmienną, która będzie miała wartość trafienia, która będzie równa
‫temu, że złapiesz piłkę w zasięgu i przekażemy wynik trafienia przez odniesienie, które chcemy
‫wypełnić.
‫A potem, jeśli trafiliśmy, będziemy kontynuować i wykonać kod przechwytujący.
‫Fantastyczne rzeczy.
‫Przenieśliśmy w nim coś do funkcji, aby ta funkcja chwytania zmieściła się na jednym ekranie.
‫I znowu skorzystaliśmy z naszych parametrów, tym razem tworząc dla siebie funkcję, która używa ich na
‫poważnie.
‫Do zobaczenia w następnym filmie.