‫Cześć i witaj.
‫Na tym wykładzie przedstawimy funkcje składowe i uzyskamy bezpieczną i
‫normalną funkcję, która pozwoli nam ustalić kierunek określonego wektora.
‫Zanurzmy się i zobaczmy, jak to działa.
‫Więc nasza prosta metoda skierowania platformy z powrotem w przeciwnym kierunku działa przy prędkościach, z
‫którymi ją przetestowaliśmy.
‫Ale co się stanie, jeśli powiem: „Hej, sprawmy, żeby ta platforma działała dziesięć razy szybciej?
‫Chodźmy grać i zobaczyć, co się stanie.
‫Cóż, nagle platformy przeskakują dość mocno do przodu i nie krążą wokół tego samego miejsca,
‫co wcześniej.
‫Powodem tego jest to, że bieżąca lokalizacja, kiedy ustawimy ją jako lokalizację początkową,
‫niekoniecznie jest dokładnie przebytą odległością.
‫Mogliśmy przestrzelić, co zostało ujęte w instrukcji if.
‫Mówimy, że przebyta odległość jest większa niż odległość ruchu, co oznacza, że przestrzelimy.
‫Musimy przestrzelić, aby wywołać to stwierdzenie if.
‫Ale pytanie brzmi o ile?
‫A to będzie bardzo zależeć od tego, jak duży jest czas delty.
‫Możemy przestrzelić o dość duże ilości, zwłaszcza jeśli prędkość platformy jest duża, co oznacza, że
‫nasza pozycja startowa może z czasem ulec zmianie.
‫Może nie pozostać na stałym poziomie.
‫Tak więc lepszym sposobem na zrobienie tego byłoby obliczenie, jak daleko musimy przemieścić się z pierwotnej lokalizacji początkowej,
‫aby dostać się do nowej, używając dokładnej odległości ruchu.
‫Spróbujmy więc zwizualizować te obliczenia tam iz powrotem.
‫Mówimy, że w miejscu początkowym mamy platformę tutaj.
‫Mówimy, że ma prędkość, którą możemy przedstawić strzałką, która jest kierunkiem i rozmiarem, a także ma
‫odległość, o jaką chcemy się przesunąć, co jest reprezentowane przez ten nawias.
‫Teraz mówimy, że chcielibyśmy ustalić dokładny punkt, w którym platforma będzie na końcu,
‫nie przed przekroczeniem, ale dokładnie w końcowej lokalizacji.
‫Teraz możemy to zrobić, wybierając kierunek strzałki prędkości.
‫W żargonie wektorów nazywa się to normalną strzałki i zasadniczo zmniejsza ją do
‫rozmiaru jeden.
‫Tak więc otrzymujemy kierunek, ale rozmiar jeden.
‫To pozwala nam poznać tę liczbę, zasadniczo wielkość prędkości, jak szybko jedziemy.
‫A potem możemy pomnożyć ten kierunek przez wielkość naszej odległości, aby otrzymać strzałkę,
‫która daje nam cały ruch od lokalizacji początkowej do lokalizacji końcowej.
‫Dokładnie tak.
‫Przyjrzyjmy się więc, jak możemy to zrobić w C++.
‫To, czego szukamy, to nowa lokalizacja startowa.
‫Więc usuńmy sposób, w jaki obecnie to robimy, i będziemy mieć lokalizację początkową równą, cóż, czemu to
‫będzie równe?
‫Cóż, to będzie równe, po pierwsze, lokalizacji początkowej plus coś, ponieważ
‫zaczynamy od tego miejsca i dodajemy ten zielony wektor, aby dojść do końca.
‫Więc co to za zielony wektor?
‫Cóż, tutaj musimy uzyskać normalną prędkość platformy.
‫Aby ułatwić nam zrozumienie, podzielę to na własną zmienną.
‫Zamierzamy więc stworzyć nową konstrukcję efektora typu, którą nazwę kierunek ruchu, aby było bardzo
‫jasne, co staramy się w nim przechowywać, a
‫następnie zamierzamy zdobądź to z kropki prędkości platformy, bądź bezpieczny, normalny, a następnie kilka nawiasów na końcu.
‫Więc co się tutaj dzieje?
‫Nie widzieliśmy tego wcześniej.
‫Użyliśmy kropek, aby uzyskać składowe wektora, X, Y i Z.
‫To były zmienne.
‫Ale w C++ i ogólnie w programowaniu obiektowym mamy również funkcje, które istnieją w klasach, więc możemy
‫użyć operatora DOT, aby uzyskać jedną z nich.
‫Użyliśmy dwukropka, kiedy próbowaliśmy usunąć go z samej klasy.
‫Ale kiedy chcemy wykonać operację na samym wektorze rzeczywistym, czyli wektorze prędkości platformy, możemy
‫użyć operatora kropki, aby uzyskać normalną wektora związanego.
‫To właśnie robimy tutaj, używając funkcji składowej zamiast zmiennej składowej.
‫Więc mamy bezpieczną normalną tej prędkości platformy i średnik, koniec wiersza, ponieważ tutaj mamy zmienną,
‫która w zasadzie mówimy, że jest to kierunek ruchu.
‫Więc teraz możemy użyć tego w następnym wierszu, aby wykonać kierunek ruchu pomnożony przez skonfigurowaną odległość
‫ruchu, ponieważ chcemy przesunąć się dokładnie do końca, a nie przekroczyć.
‫A kiedy już to zrobimy, powinniśmy przenieść naszą platformę do końcowej lokalizacji.
‫Więc zamierzamy ustawić lokalizację aktora, aby była lokalizacją początkową, ponieważ w przeciwnym razie nasza
‫platforma przejmie tę lokalizację końcową, ponieważ zaktualizujemy ją o bieżącą lokalizację, która jest
‫lokalizacją przestrzelenia.
‫Dzięki temu możemy przejść dokładnie do punktu końcowego.
‫A potem zacznij od nowej lokalizacji początkowej.
‫Teraz ważne jest, abyśmy po wykonaniu tego wszystkiego zaktualizowali prędkość platformy, ponieważ używamy
‫jej, aby poznać kierunki ruchu.
‫Zaktualizuję prędkość platformy po ustaleniu lokalizacji aktora.
‫Teraz wróćmy do Unreal i wciśnij kompilacja i zobaczmy, czy to zostało naprawione.
‫Problem z naszą platformą poruszającą się do przodu i do tyłu.
‫Zamknijmy ten terminal i włączmy odtwarzanie.
‫A teraz, jeśli spojrzymy, platforma porusza się szybko, ale porusza się niezawodnie wokół początkowej
‫i końcowej lokalizacji, oczekiwalibyśmy.
‫To wszystko, co chciałem omówić w tym wykładzie, co jest poprawne.
‫Mały błąd, który mógł pojawić się w niektórych konfiguracjach naszych platform.
‫Zobaczę w następnym.