‫Cześć i witaj.
‫Na tym wykładzie dowiemy się, w jaki sposób możemy uzyskać dane wyjściowe z funkcji w C++.
‫Wykorzystamy to, aby znacznie uprościć nasz kod i zacząć implementować część tego pseudokodu, który
‫napisaliśmy.
‫Zanurzmy się.
‫Więc zanim spróbujemy zrozumieć wartości zwracane z funkcji, zróbmy krótki objazd i zrozummy to.
‫Dwa pojęcia dodają nam jeszcze dwa pojęcia do naszego kolosalnego.
‫Więc pierwszy to wyrażenie.
‫Wyrażenie to fragment kodu, który generuje wartość.
‫I jest jeszcze instrukcja, która jest fragmentem kodu, który jest akcją do wykonania.
‫Teraz te dwie rzeczy mają związek w tym, że wyrażenie prawie zawsze jest stwierdzeniem, że
‫aby obliczyć wartość fragmentu kodu, musi to być akcja do wykonania.
‫Ale to samo niekoniecznie jest prawdą na odwrót.
‫Stwierdzenie nie zawsze da ci wartość.
‫Przyjrzyjmy się więc przykładom wyrażeń i rzeczom, które nie pochodzą z kodu, który
‫już napisaliśmy.
‫Więc kiedy wpisujemy mój wektor do C++, jest to wyrażenie, ponieważ ma wartość tego, co jest przechowywane wewnątrz
‫mojej zmiennej wektora.
‫To samo dotyczy wektora lokalnego.
‫W rzeczywistości, jeśli masz wektor lokalny plus kropka z, to samo w sobie jest wyrażeniem i wektorem lokalnym kropka z
‫plus 100.
‫To samo w sobie jest wyrażeniem, ponieważ lokalny wektor kropka z dał ci wartość wewnątrz elementu
‫Z.
‫A kiedy dodasz 100, otrzymasz nową wartość, która ma dodanie 100.
‫Więc to wszystko są wyrażenia.
‫Jednak coś, co nie jest wyrażeniem, jest wtedy, gdy zadeklarowaliśmy nasz wektor lokalny, kiedy powiedzieliśmy wektor, wektor lokalny jest
‫równy mojemu wektorowi i wstawiliśmy średnik na końcu linii.
‫Nie możemy tego użyć do uzyskania wartości.
‫Nie ma tam żadnej wartości.
‫Po prostu mówi C++, że Oto akcja, którą musisz wykonać.
‫Chcę, żebyś utworzył nowy wektor lokalny.
‫Więc to nie jest wyrażenie.
‫Jednak czymś, co jest wyrażeniem, jest uzyskanie lokalizacji aktora.
‫Jest to funkcja, którą wywołujemy, ponieważ na końcu znajdują się nawiasy.
‫Właściwie nie mamy tutaj żadnych argumentów.
‫To jest pusta lista argumentów, ale coś wywołuje.
‫A ponieważ ta funkcja ma wartość zwracaną, rzeczywisty fragment kodu tutaj jest wyrażeniem, które przyjmuje wartość tego,
‫co jest zwracane z funkcji.
‫I jest to zasadniczo to samo, co pisaki wyjściowe, które widzieliśmy wcześniej na schemacie.
‫Poza tym, że w przeciwieństwie do planów, funkcja może mieć tylko jedną wartość wyjściową.
‫Jest tylko jedna wartość zwrotu.
‫To jest to, czego możemy użyć tutaj, gdzie napisaliśmy nasz pseudokod, który mówi, aby uzyskać aktualną lokalizację.
‫Właśnie tam zamierzamy to zrobić.
‫Ustalimy lokalizację, korzystając z naszej lokalizacji dostępu.
‫Stwórzmy więc tutaj nową zmienną lokalną.
‫Będziemy mieli nową zmienną lokalną o nazwie F typu efekt.
‫Musi to być wektor typu S, ponieważ jest to typ zwracany z get
‫at a location i będziemy nazywać tę bieżącą lokalizację i ustawimy ją jako równą wynikowi wyrażenia, pobierzemy lokalizację aktora, a następnie
‫ustawimy nawiasy pasujących nawiasów, a następnie średnik na końcu wiersza.
‫Więc jeśli trochę przetniemy tę linię, zobaczymy, że ten kawałek, lokalizacja get act i
‫nawiasy to wyrażenie, które daje nam wartość, która jest bieżącą lokalizacją aktora.
‫Następnie wykonujemy przypisanie do bieżącej lokalizacji, która również jest tutaj deklarowana.
‫Więc w tym wierszu, ten cały wiersz nie jest wyrażeniem.
‫Nie ma w tym żadnej wartości, to stwierdzenie.
‫I zazwyczaj można powiedzieć stwierdzenie, ponieważ w C++ kończy się ono średnikiem.
‫Ok, więc zasadniczo pozwoli nam to pozbyć się mojego wektora i wektorów lokalnych,
‫których używaliśmy wcześniej, ponieważ powinniśmy być w stanie zaktualizować tutaj naszą zmienną lokalną,
‫tę bieżącą lokalizację, którą otrzymaliśmy z lokalizacja naszego aktora.
‫Więc to, co zrobimy, to dalej tutaj, otrzymaliśmy komentarz, który mówi, ustaw lokalizację.
‫Więc po tym wierszu komentarza, ustawię lokalizację aktora, używając wyrażenia bieżąca lokalizacja, czyli po prostu używając tej wartości zmiennej, a następnie wstawię
‫średnik na końcu wiersza, aby powiedzieć, że to wszystko
‫jest instrukcją.
‫Chcemy, aby wykonał to działanie ustawione w lokalizacji i zauważyłem, że podczas gdy moje komentarze są wcięte,
‫zdecydowałem się nie wcinać kodu, aby pasował, ponieważ zwykle tego chcemy.
‫Kody mają znajdować się na jednym poziomie wcięcia w ramach funkcji.
‫Teraz mogę usunąć cały kod, który mieliśmy wcześniej, wszystko, co dotyczy wektora lokalnego, mój zestaw wektorów
‫w lokalizacji przy użyciu wektora lokalnego, mogę to wszystko usunąć.
‫Tak więc wszystko, co mamy teraz, to rzeczy wokół naszych komentarzy.
‫A także, zamierzam przejść do pliku nagłówkowego i trochę uporządkować tutaj.
‫Nie potrzebujemy już mojego wektora.
‫Nie potrzebujemy już nieruchomości mojego ex u.
‫Więc te też usunę.
‫Teraz oczywiście ruchoma platforma CP tak naprawdę nie robi zbyt wiele, ponieważ otrzymujemy aktualną lokalizację aktora,
‫a następnie ustawiamy ją ponownie, co w zasadzie nie ma żadnego efektu.
‫Więc chciałbym, abyś spróbował zaktualizować bieżącą lokalizację ruchomej platformy w tej funkcji tiku.
‫Więc używaj członków X lub Y według własnego uznania.
‫Cóż, X pójdzie do przodu.
‫Y przeniesie Cię w prawo, a następnie możesz dodać do niego i przypisać z powrotem do członka, tak jak robiliśmy
‫to wcześniej, aby zaktualizować lokalizację naszych ruchomych platform.
‫Dodaj więc jedną lub dwie, w zależności od tego, jak szybko platforma ma się poruszać, a następnie przenieś platformę
‫do jej lokalizacji początkowej, ponieważ teraz nie mamy tej zmiennej składowej, aby wskazać jej
‫lokalizację początkową, w rzeczywistości używamy bieżącej lokalizacji.
‫Więc gdziekolwiek umieścisz tę platformę, tam zacznie się platforma.
‫A potem chciałbym, żebyś skompilował i przetestował swój kod i sprawdził, czy się porusza, jak można się spodziewać.
‫Wstrzymaj wideo i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Więc umieścimy ten wiersz kodu tuż pod komentarzem, który o tym mówi, dodamy wektor
‫do tej lokalizacji.
‫Powodem, dla którego to tutaj umieszczamy, jest kolejność, w jakiej chcemy uzyskać aktualną lokalizację, zaktualizować
‫ją, a następnie ustawić.
‫Nie chcemy, żeby coś się tam działo.
‫Gdybyśmy mieli ją zaktualizować przed utworzeniem zmiennej, cóż, ta zmienna by nie istniała.
‫Pamiętaj, jest to zmienna lokalna.
‫Istnieje tylko wtedy, gdy utworzymy go w tym konkretnym wywołaniu funkcji.
‫A gdybyśmy zrobili to po ponownym ustawieniu w lokalizacji, ta modyfikacja zostałaby po prostu
‫odrzucona, gdy doszliśmy do zamykającego Brice'a w funkcji.
‫Więc ustawimy obecną lokalizację kropki x, użyję równej bieżącej lokalizacji, kropki x plus jeden,
‫a następnie wstawię średnik na końcu linii.
‫I wrócimy do Unreal i naciśniemy przycisk kompilacji.
‫I jak wspomniałem, musimy teraz przenieść tę ruchomą platformę na jej początkową lokalizację.
‫Więc kliknę na postać z trzeciej osoby i skopiuję jej lokalizację, klikając ją prawym przyciskiem myszy, naciskając kopiuj,
‫a następnie przechodząc do naszej ruchomej platformy, klikając prawym przyciskiem myszy jej lokalizację,
‫naciskając wklej.
‫To sprawia, że platforma znajduje się w naszym odtwarzaczu, a to nie jest to, czego chcemy.
‫Więc przesunę go nieco na prawo od odtwarzacza i zobaczę, czy jest na odpowiedniej
‫wysokości.
‫Myślę, że obniżę ją nieco niżej, co jest jedną z korzyści płynących z używania bieżącej lokalizacji, a
‫nie zmiennej lokalizacji, jest to, że faktycznie mogę zobaczyć, gdzie ta platforma będzie na
‫świecie.
‫Więc teraz, jeśli pójdę dalej i wcisnę odtwarzanie, to widać, że platforma ładnie przesuwa ją w
‫kierunku X.
‫Nadal mogę na nią skakać i poruszać się razem z nią.
‫Świetna sprawa.
‫Teraz nauczyliśmy się, jak zwracane wartości działają z funkcji.
‫Naprawdę zaczynamy rozumieć wiele koncepcji z planów w świecie C++.
‫Do zobaczenia na następnym wykładzie.