‫Cześć i witaj.
‫W tym wykładzie będziemy ustawiać chwytak, abyśmy mogli złapać nasz posąg
‫gargulca i zabrać go ze sobą przed sobą.
‫Zanurzmy się i zobaczmy, jak to robimy.
‫Więc nadszedł czas, abyśmy zaczęli nazywać alokację komponentu grab z rotacją.
‫Jak powiedziałem wcześniej, w rzeczywistości są to dwie części.
‫Musimy chwycić komponent, a następnie ustawić jego docelową lokalizację i obrót, aby
‫się poruszał.
‫Więc najpierw rzeczy pierwsze.
‫W naszej funkcji chwytania będziemy musieli zdobyć wskaźnik do naszego uchwytu fizyki.
‫Więc skopiuję wiersz z Begin Play i przejdę do chwytaka i wstawię go
‫tutaj.
‫I uchronić się przed tym, że jest to nieważne.
‫Cóż, co powinno się stać?
‫Cóż, właściwie nie ma nic, co chcielibyśmy zrobić.
‫Jeśli nie mamy uchwytu fizyki, nie możemy niczego uchwycić.
‫Moglibyśmy więc umieścić całe ciało tej funkcji chwytania w instrukcji if, ale może to wyglądać trochę
‫niechlujnie.
‫Zamiast tego możemy zrobić coś, co nazywamy wczesnym powrotem.
‫Zasadniczo mówimy po prostu, czy fizyka sobie poradzi.
‫Równa się równa się null wskaźnik.
‫W tym miejscu należy umieścić podwójny znak równości.
‫W przeciwnym razie to zadanie.
‫Potem możemy zejść na dół, żeby zrobić kilka aparatów ortodontycznych i możemy po prostu wstawić tutaj zwrot.
‫Więc co to zrobi, to jeśli mamy zerowe punkty dla uchwytu fizyki, to wraca od
‫razu i nie wykonuje reszty funkcji, dzięki czemu korzystanie z fizyki w pozostałej części
‫funkcji jest bezpieczne. obsłużyć jak chcemy.
‫Więc zamierzamy to zrobić.
‫Zejdziemy tam, gdzie mamy trafienie.
‫Myślę, że nie potrzebujemy już tych komunikatów dziennika.
‫Więc zamierzam usunąć instrukcje alt.
‫Usunę w zasadzie wszystko z treści instrukcji F i użyjemy naszego
‫grabbera.
‫Więc zrobimy fizykę uchwytu do chwytania komponentów strzałek w miejscu z obrotem.
‫Następnie musimy dostarczyć mu komponent, który próbujemy pobrać.
‫Jeśli spojrzysz, to czego oczekuje, to prymitywne komponenty.
‫Zobaczmy, czy mamy coś podobnego w naszym wyniku trafienia.
‫Po prostu wskoczę na stronę dokumentacji i poszukam podstawowych komponentów, a zobaczysz, że
‫komponent get zwróci Ci prymitywny komponent, który został trafiony.
‫Idealny.
‫Właśnie tego potrzebujemy.
‫Musieliśmy więc poszukać składowych wyniku trafienia kropka pobierz, a to da nam to, czego
‫chcemy dla pierwszego argumentu.
‫Teraz następna jest nazwa F dla łuku.
‫Teraz tak naprawdę nie chcemy chwytać niczego za konkretną kość.
‫Byłoby tak w przypadku, gdybyśmy mieli siatkę szkieletową, ale nie mamy.
‫Mamy statyczną siatkę, więc po prostu używamy nazwy bez podkreślenia.
‫I ogólnie rzecz biorąc, przy nazwach F, w których mówimy o kościach, to wychodzi całkiem często.
‫Jeśli nie chcesz niczego wstawiać, użyj nazwy, żadnego podkreślenia.
‫Teraz potrzebujemy lokalizacji, w której zamierzamy go pobrać.
‫A już powiedzieliśmy, że przyjrzeliśmy się temu.
‫Jest to punkt uderzenia kropki w wyniku trafienia, a następnie rotacja, bieżąca rotacja tego komponentu wykona
‫całą bieżącą rotację aktora, cokolwiek wolisz.
‫Tak więc wyniki trafień otrzymują komponenty.
‫Zbierzemy te wyniki.
‫Pobierz strzałkę z kropką komponentu, ponieważ jest to wskaźnik.
‫Uzyskaj rotację komponentów jak.
‫Więc teraz może umieścić nawiasy zamykające w osobnym wierszu, a ja umieszczę średnik kończący
‫instrukcję, co powinno być skuteczne w uchwyceniu naszych komponentów.
‫Teraz kolejna część układanki znajduje się w składniku tiku, w którym chcemy ponownie użyć uchwytu fizyki.
‫Więc zamierzam na razie skopiować kod, wiedząc, że kopiowanie kodu do trzech miejsc to trochę za dużo,
‫i możemy pomyśleć o wyciągnięciu go do funkcji, abyśmy mogli go ponownie wykorzystać.
‫Ale komponenty wlotowe będą używać uchwytu fizyki.
‫Wrócimy wcześniej, jeśli nie zdołamy zdobyć uchwytu fizyki.
‫A potem spróbujemy ustawić docelowe lokalizacje.
‫Zamierzam zrobić uchwyt fizyki, zestaw strzałek, lokalizację docelową i obrót.
‫I zastanówmy się trochę.
‫Jaką lokalizację docelową moglibyśmy ustalić?
‫Cóż, zasadniczo będzie tak samo, jak w przypadku punktu końcowego.
‫Zamierzamy zająć naszą obecną lokalizację, a następnie przesunąć ją na zewnątrz w kierunku do przodu o określoną
‫odległość.
‫Teraz będzie to konfigurowalne.
‫Możesz użyć maksymalnej odległości chwytania, ale w praktyce wydaje mi się, że jest to zbyt daleko.
‫Więc jeśli pójdziemy do naszego Dziadka Dot H, stworzymy nową, nową właściwość o nazwie Edit Anywhere.
‫I będzie to pływak zwany odległością trzymania.
‫I ustawię to na 200.
‫Więc będzie znacznie bliżej gracza.
‫Teraz, jeśli zamierzamy pobrać CP, możemy przejść do funkcji take i spróbować stworzyć ten cel.
‫Lokalizacja musi być wektorem F zwanym lokalizacją docelową.
‫Ustawimy to jako równe pobraniu lokalizacji komponentu plus wektor przejścia do przodu pomnożony
‫przez odległość przetrzymania.
‫Więc możemy użyć tego jako lokalizacji docelowej.
‫To będzie nasz pierwszy argument, a potem potrzebujemy docelowej rotacji.
‫Cóż, w tym celu użyję po prostu rotacji bieżącego komponentu, tak że gdy
‫się rozejrzymy, obrócimy obiekt za pomocą naszego widoku, abyśmy mogli po prostu wykonać obrót pobierania komponentu,
‫aby uzyskać obrót obecny komponent sceny grabbera.
‫Fajnie umieść średnik na końcu tej linii, przekompiluj i zobacz, jak to działa.
‫Teraz, po pomyślnej kompilacji, wybierzmy gargulca i po prostu upewnijmy się, że zmieniliśmy jego
‫mobilność z START.
‫Pomyśl o ruchomym, ponieważ potrzebujemy go, aby móc poruszać się w odpowiedzi na fizykę i upewnijmy się,
‫że symuluje fizykę.
‫Przejdźmy do kategorii fizyki i sprawdźmy przycisk symulacji fizyki.
‫Zagrajmy i spróbujmy go podnieść.
‫W tej chwili nic się nie dzieje, ale wydaje się, że utknął w podłodze, więc nie jest to idealne
‫rozwiązanie.
‫Spróbujmy go nieco podnieść, aby nie utknął w podłodze.
‫Niech spadnie w ten sposób na podłogę, a teraz spróbuj go podnieść.
‫Wygląda na to, że znowu utknął w podłodze.
‫Więc spróbujmy po raz drugi.
‫Dobra.
‫Jest więc trochę zawodny i czasami, jeśli złapiesz go od razu, dobrze podniesie gargulca
‫i możesz go podnieść w ten sposób.
‫Zauważyłem, że rotacja nie jest prawidłowa, a to dlatego, że użyłem niewłaściwej rzeczy podczas chwytania komponentu
‫fizyki.
‫Mam rotację gargulca i teraz staramy się, aby ta rotacja, której faktycznie
‫potrzebowałem, była rotacją, której używamy, biorąc pod uwagę rotację chwytaka.
‫Więc chodźmy dalej, zmieńmy to i przekompilujmy, a po prostu ponownie wciśniemy play i spróbujemy go pobrać.
‫Proszę bardzo.
‫Tym razem chwyciłem go i uzyskałem prawidłową rotację, dokładną rotację, którą miał.
‫I widać, że wygląda, jakby ktoś chwycił go sprężyną.
‫Jeśli spróbuję przepchnąć go przez ścianę, stara się nie przechodzić przez ścianę tak bardzo, jak może.
‫W końcu przebija się przez ścianę, ale próbuje obserwować fizykę, gdy ją poruszam.
‫Więc rzućmy wyzwanie teraz, aby wyciągnąć nową funkcję o nazwie pobierz uchwyt fizyki.
‫To będzie prywatne.
‫Powinien zwrócić U.
‫Fizyka obsługuje komponent i powinna usunąć ten zduplikowany kod konieczności uzyskania właściciela i
‫znalezienia komponentu według klasy.
‫Możesz także nawiązać z nim potencjalny kontakt, sprawdzić, czy możesz, i sprawić, by się zarejestrował.
‫Jeśli nie mamy komponentu uchwytu fizyki, daj dziennik ostrzegawczy, aby się pojawił i wiedzieli, że zrobiliśmy
‫coś złego.
‫Wstrzymaj wideo i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Przede wszystkim przechodzimy do nagłówka pliku, w którym umieścimy to w sekcji prywatnej.
‫Ale pod właściwościami chcę, żeby zwróciła trochę fizyki, obsługiwała komponenty i umieściła tutaj
‫gwiazdkę.
‫Teraz, ponieważ używamy tego typu tutaj w nagłówku, musimy wziąć nasze dołączanie i wyciąć je
‫z chwytaka.
‫Tak więc, jeśli chodzi o uchwyt fizyki, musimy umieścić go w kropki chwytaka h,
‫gdzie zamierzamy umieścić go nad wygenerowanym h.
‫To ostatnia rzecz zawsze w naszych aktach.
‫A dlaczego nie potrzebujemy go również w PK?
‫Cóż, ponieważ uwzględniamy Grab lub H, więc wszystko, co włożymy, chwyć to lub H
‫automatycznie znajdzie się w CP, więc możemy umieścić to w nim.
‫Teraz możemy zejść do miejsca, w którym definiujemy tę funkcję i nazwać ją tak, aby uzyskać fizykę obsługi
‫mocy nawiasów.
‫I myślę, że to powinno być stałe, nie powinno zmieniać niczego w naszym grabberze, aby wywołać tę funkcję.
‫Po prostu przejdź do PK, idź na dół, gdzie zamierzam wkleić definicję,
‫przykleję ci okrężnicę z przodu, a potem usuwam średnik, dodając parę nawiasów klamrowych.
‫A to, co chcemy zrobić, to wziąć miejsce, w którym mamy to get on-line i po prostu to
‫wyciąć i zastąpić fizyką pobierania.
‫Uchwyt jak mydło.
‫A następnie w uchwycie pobierania fizyki możemy po prostu zwrócić komponent znajdowania właściciela według klasy itp.
‫A teraz możemy zastąpić to również, gdy robimy to w składniku tikowym, zdobywamy uchwyt
‫fizyki.
‫Zastąpmy ten mały fragment kodu poleceniem zdobądź fizykę.
‫Teraz jest to taki mały kawałek kodu, prawie nie jest tego wart, ale zdecydowanie jest
‫tego wart ze względu na praktykę w tym momencie i fakt, że możemy teraz dodać kilka komunikatów dziennika i zacząć grać.
‫Właściwie nie musimy w ogóle obsługiwać fizyki, więc po prostu usunę tam ten kod.
‫Ale zamierzam dodać komunikat dziennika.
‫Stworzymy więc zmienną do przechowywania naszego wyniku tutaj, ponieważ jeśli wrócimy, a następnie spróbujemy wydrukować komunikat
‫dziennika, to nie zadziała.
‫Tak więc będziemy mieli nowy komponent uchwytu fizyki o nazwie wynik.
‫To znaczy, że wrócimy stąd i powiemy, jeśli wynik jest równy null pointerowi, cóż, to potrzebujemy
‫nowego dziennika z ostrzeżeniem lub w rzeczywistości błędem, naprawdę.
‫I powiemy, że grabber wymaga nowego komponentu uchwytu fizyki.
‫A potem po stwierdzeniu if.
‫Więc tak się stanie.
‫Niezależnie od tego, czy jest null, czy nie, zwrócimy wynik.
‫Więc chodźmy dalej, skompilujmy to i sprawdźmy, czy wszystko działa.
‫Wygląda na to, że się udało i widzę, że to musi działać, ponieważ kiedy kliknąłem lewym przyciskiem
‫myszy, otrzymuję rysowanie niebieskich lub debugowanych kul i nie zostałyby narysowane, gdybyśmy tego nie zdobyli.
‫Fizyka obsługuje komponenty.
‫Świetna sprawa.
‫Tak więc w tym wykładzie udało nam się złapać nasz posąg gargulca za pomocą naszego chwytaka, chociaż czasami
‫może to być trochę zawodne.
‫Zajmiemy się tym na nadchodzących wykładach, więc do zobaczenia.