‫Cześć.
‫Powitanie.
‫W tym wykładzie sprawimy, że grabber będzie znacznie bardziej niezawodny.
‫Umożliwimy też upuszczenie przechwyconego komponentu, abyśmy mogli go rzucać i ogólnie sprawić,
‫by był trochę bardziej użyteczny.
‫Zanurzmy się i zobaczmy, jak to się robi.
‫Powodem, dla którego często nie jesteśmy w stanie wychwycić tego gargulca, jest
‫to, że komponenty symulujące fizykę ze względu na wydajność uśpią się, gdy będą nieruchome przez pewien czas.
‫I to właśnie widzimy.
‫Ta symulacja fizyki gargulców będzie spać i nie zostanie wybudzona, gdy dołączymy do niej za
‫pomocą naszego uchwytu fizyki.
‫Więc to, czego musimy się nauczyć, to obudzić go, gdy uderzymy w niego śladem kuli.
‫Teraz chodźmy i przyjrzyjmy się dokumentacji twojego prymitywnego komponentu, którą widzieliśmy.
‫Pierwotny składnik you jest tym, co zwraca wynik naszego trafienia, ale w rzeczywistości jest składnikiem
‫pierwotnym.
‫W dokumentacji jest więc napisane, że prymitywny komponent jest komponentem sceny, który zawiera lub
‫generuje pewien rodzaj geometrii i jest renderowany lub używany jako dane kolizyjne.
‫Ogólnie mówiąc, prymitywne komponenty to takie, które mogą symulować fizykę.
‫Możemy więc spodziewać się, że znajdziemy tutaj kilka metod symulacji fizyki.
‫I będę szukał funkcji ze słowem kluczowym wake.
‫Przyjrzymy się kilku funkcjom, aż znajdziemy taką, która mówi Obudź wszystkie sztywne ciała.
‫Ciała sztywne są zasadniczo terminem fizycznym dla obiektów, które symulują fizykę.
‫Więc widać, że ma pustkę.
‫Typ zwracany nie przyjmuje żadnych argumentów.
‫Powinniśmy więc móc to nazwać, gdy próbujemy się do tego przywiązać.
‫Więc jeśli przejdziemy do naszego przechwycenia CP w naszej instrukcji if, trafiliśmy na ten komponent, zamierzamy go
‫pobrać.
‫Pierwszą rzeczą, którą musimy zrobić, to być może stwórzmy zmienną do przechowywania tego prymitywnego komponentu.
‫Więc będziemy mieli prymitywny wskaźnik komponentu o nazwie zestaw komponentów trafienia, który jest równy wynikowi trafienia
‫kropka pobierz komponent.
‫A następnie używając tego wskaźnika komponentu trafienia, możemy obudzić strzałką wszystkie sztywne ciała, a następnie umieścić nawiasy i
‫średniki na końcu.
‫Więc to powinno dać kopa temu komponentowi, obudzić go, aby reagował na uchwyt fizyki.
‫Teraz zamieńmy miejsce, w którym zrobiliśmy wyniki trafień.
‫Nie pobieraj komponentów w naszym wywołaniu uchwytu fizyki, aby pobrać lokalizację komponentu, ponieważ mamy teraz zmienną do
‫tego i przekompilujmy, gdy to się skończy.
‫Idźmy dalej i włączmy odtwarzanie i pozwólmy gargulcowi usiąść na razie trochę na podłodze i pozwól mu zasnąć,
‫a następnie spróbujmy go podnieść.
‫I zauważysz, że nie mamy problemów z podnoszeniem go, kładzeniem go na podłodze, cokolwiek.
‫Będzie dobrze, obudzimy te sztywne ciała fizyczne i zaczniemy je symulować, aby można je było
‫podnieść i chwycić.
‫Być może zauważyłeś, że obecnie nie jesteśmy w stanie zwolnić
‫uchwytu fizyki, więc Twoim wyzwaniem będzie zrobienie tego w funkcji zwolnienia.
‫Więc zamierzasz wywołać komponent release na tym uchwycie fizyki.
‫Jest to funkcja dostępna na wskaźniku uchwytu fizyki.
‫Najpierw sprawdzisz, czy mamy jakiś komponent.
‫Więc jeśli otrzymasz komponent grab, który zwraca wskaźnik do komponentu grab, punkty te będą
‫puste, jeśli uchwyt fizyki aktualnie niczego nie przechwytuje.
‫Możesz więc użyć tego, aby sprawdzić, czy coś mamy i zwolnić tylko wtedy, gdy aktualnie coś
‫łapiemy.
‫A jako bonus możesz spróbować, czy uda nam się ponownie ustawić cel.
‫Tylko jeśli coś łapiemy, ale obejrzyj wideo i spróbuj.
‫Witamy spowrotem.
‫Więc wejdźmy po filiżankę.
‫Zamierzam przejść do funkcji zwolnienia i usunąć dziennik wydań.
‫I tutaj umieścimy zdanie if i powiemy, czy i teraz musimy sięgnąć po
‫nasze uchwyty fizyki.
‫Więc najpierw zrobimy wskaźnik komponentu uchwytu fizyki, który nazwiemy uchwytem fizyki i
‫ustawimy go na równy, aby uzyskać uchwyt fizyki.
‫Więc wtedy powiemy, że jeśli uchwyt fizyki jest równy null wskaźnikowi, chcemy iść dalej i wrócić, ponieważ nie
‫będziemy w stanie nic zrobić, niczego zwolnić.
‫Jeśli w ogóle nie mamy uchwytu fizyki, chcemy sprawdzić, czy aktualnie trzymamy się czegoś za pomocą
‫naszego uchwytu fizyki.
‫Więc jeśli, powiedzmy, jeśli strzałka uchwytu fizyki zostanie przechwycona, nawiasy nie równają się pustemu wskaźnikowi, to wewnątrz treści instrukcji
‫if oznacza, że coś jest aktualnie przechwycone, cóż, wtedy
‫zrobimy komponent zwalniający strzałkę uchwytu fizyki , co pozwoli mu odejść, jak sugeruje
‫nazwa.
‫I jednej rzeczy, której nie zrobiłem w tym kodzie, ale prawdopodobnie warto dodać do swojego, to
‫to, że zanim wypuścimy komponent, warto iść dalej i wywołać get chwycone komponenty, a następnie dodać słabe wszystkie
‫sztywne bryły, tak jak to zrobiliśmy zanim chwycimy komponent.
‫Ponieważ gdybyśmy mieli wyhodować jakiś komponent i przez chwilę nie poruszać się, może on również iść spać.
‫A więc wypuszczenie go nic by nie dało.
‫Warto to dodać, ponieważ złapałoby to przypadek narożny i nie chcemy ustawiać lokalizacji docelowej w
‫tiku, jeśli mamy uchwyt fizyki, który obecnie niczego nie chwyta.
‫Więc tutaj, w naszych komponentach tikowych, umieścimy instrukcję if, która będzie dokładnie taka sama.
‫Będzie to oznaczało, że strzałka uchwytu fizyki złapała komponent nie równy wskaźnikowi zerowemu.
‫Następnie w treści instrukcji if umieścimy obliczenia lokalizacji docelowej i ustawienie lokalizacji
‫docelowej również w tym uchwycie fizyki.
‫Przekompilujmy i wypróbujmy to.
‫Chodźmy dalej i włączmy odtwarzanie.
‫I spróbuj złapać gargulca.
‫A potem, jeśli puszczę mysz, znowu spadnie na podłogę.
‫Więc wydaje się, że nie ma na to wpływu to, czy jest na jawie, czy śpi.
‫Wydaje się, że się budzimy, bez względu na to, czy za każdym razem, gdy to podnosimy, zasadniczo.
‫Wygląda więc na to, że działa dokładnie tak, jak bym tego chciał.
‫Nie utknie.
‫To jest prawie właściwe.
‫Jedyną dziwną rzeczą jest to, że kiedy się w nią wchodzę, widać, że robi to dziwne
‫drganie, ponieważ faktycznie koliduje z graczem.
‫Teraz możemy to trochę naprawić, przechodząc do naszego gargulca w panelu szczegółów, wybierając wszystkie kategorie, przewijając
‫w dół do kolizji i patrząc na nasze niestandardowe ustawienia kolizji i w dół
‫w odpowiedziach obiektów.
‫Więcej na ten temat zobaczymy później.
‫Jest odpowiedź obiektu pionkiem.
‫To w zasadzie mówi, czy powinienem zderzyć się z pionkiem, czy co?
‫Jaka powinna być moja odpowiedź na pionka?
‫No cóż, ustawię go tak, aby pokrywał się z pionkiem.
‫A to oznacza, że jeśli się ze mną zderzy, to w zasadzie po prostu to ignoruje.
‫I jeszcze jedna rzecz, którą musimy zrobić, to fakt, że składa się ona z dwóch siatek
‫statycznych, mają one własne ustawienia kolizji.
‫Zejdę do kopca ziemi.
‫To jest rzecz pod gargulcem.
‫I tutaj zamierzam tylko uprościć rzeczy.
‫Zamierzam zrobić część kopca ziemi, bez kolizji.
‫Więc przestawię go na ustawienie bez kolizji.
‫Potem pójdę dalej i wcisnę odtwarzanie, podniosę gargulca z podłogi.
‫A teraz widać, że kiedy z nim biegnę, nie
‫ma żadnego dziwnego glitchingu, ponieważ nie próbuje kolidować z siatką kolizji gracza.
‫Świetne rzeczy.
‫W tym wykładzie nauczyliśmy się, jak sprawić, by nasz grab był o wiele bardziej niezawodny, a także
‫jak uwolnić komponent chwytający.
‫Świetne rzeczy.
‫Do zobaczenia na następnym wykładzie.