‫Cześć i witaj.
‫Na tym wykładzie nauczymy się o funkcjach, które nie znajdują się w planach poziomów,
‫ale w konkretnej klasie planu.
‫Są to tak zwane funkcje składowe i są absolutnie kluczowe dla programowania obiektowego.
‫Zanurzmy się i zobaczmy, jak działają.
‫Tak więc w naszej funkcji odradzania pocisku w planach poziomów mamy tu mnóstwo węzłów związanych z
‫dodaniem impulsu, określeniem kierunku impulsu i uzyskaniem statycznego komponentu siatki.
‫Wszystkie te węzły dogłębnie wykorzystują instancję pocisku BP.
‫Czy nie byłoby wspaniale, gdybyśmy mogli wziąć cały ten kod i przenieść go do pocisku BP, aby
‫kod zajmujący się tymi danymi żył z samymi danymi?
‫Cóż, to jest cały punkt programowania obiektowego.
‫Możemy więc zdefiniować programowanie obiektowe jako funkcje żyjące z danymi, którymi manipulują.
‫Więc jak to działa?
‫Jak możemy tworzyć funkcje na poszczególnych wystąpieniach rzeczy?
‫Cóż, jednym ze sposobów, w jaki możemy to zrobić, możemy otworzyć naszą klasę pocisku BP
‫i upewnić się, że kliknęliśmy otwórz pełny edytor planów. Możesz zobaczyć, że w tym pełnym edytorze planów
‫znajduje się panel z moim planem i sekcja funkcji więc możemy nacisnąć strzałkę plusa, aby utworzyć nową funkcję w klasie pocisku
‫BP.
‫I zamierzam nazwać tę funkcję, wypisz twoje imię, a to wypisz twoje imię.
‫Funkcja powinna właśnie to zrobić.
‫Widzimy, że mamy węzeł, który rozpoczyna wykonywanie tej funkcji, więc możemy wyciągnąć jego pin
‫wykonawczy i wpisać print string.
‫Więc to zostanie wydrukowane.
‫Cześć.
‫Niezupełnie nazwa tej funkcji, prawda?
‫Ale wyjaśnimy to za chwilę.
‫Więc to, co tutaj mamy, jest znane jako funkcja składowa.
‫Funkcja składowa to funkcja w klasie, która zawsze jest wywoływana w określonej instancji klasy.
‫Więc nie mówisz, że zadzwonię lub wydrukuję twoje imię na wszystkich pociskach BP.
‫Musisz powiedzieć, chcę zadzwonić, wydrukować swoje imię na pocisku BP numer jeden lub pocisku BP, który
‫właśnie się pojawił.
‫Więc jeśli przejdziemy do schematu naszego poziomu, to co musisz zrobić, to wziąć odniesienie, które wyszło z
‫pocisku odradzania BP.
‫I z tego odniesienia możesz nazwać print swoje imię i zobaczysz, że automatycznie łączy się ze
‫specjalną notatką wejściową o nazwie Target.
‫I oczywiście musisz też zaczepić swoje szpilki egzekucyjne.
‫Zamierzam to podłączyć po dodaniu impulsu.
‫Ale to, co jest interesujące w tym specjalnym węźle wejściowym, to to, że jeśli przejdziesz do pocisku BP, zobaczysz
‫ten wydruk.
‫Twoje imię nie ma takiego obciążenia wejściowego.
‫Więc co się tutaj dzieje?
‫Cóż, domyślnie każda funkcja członkowska ma parametr, który jest jej bieżącym celem lub bieżącą instancją.
‫Możesz to uzyskać, klikając prawym przyciskiem myszy wykres zdarzeń planu i wpisując self.
‫I widać, że jest węzeł o nazwie get referencja do siebie i po prostu tworzy węzeł self taki jak
‫ten.
‫A następnie możesz użyć tego odwołania do obiektu self, aby uzyskać dowolne właściwości tego konkretnego obiektu.
‫Więc jeśli chcielibyśmy zdobyć nazwę naszego pocisku BP, możesz ściągnąć autoreferencję i wpisać
‫nazwę wyświetlaną get, co zrobiliśmy wcześniej.
‫A potem możesz podłączyć wyświetlaną nazwę do naszego napisu.
‫Więc teraz, kiedy gramy i wystrzeliwujemy nowy pocisk, możesz zobaczyć, że drukuje nazwę pocisku i
‫możesz zobaczyć, czy każdy nowy pocisk tworzy nazwę jest inna, ponieważ jaźń, do
‫której odnosi się funkcja członka to inna jaźń to inny pocisk.
‫Dowiedzieliśmy się więc, że self jest węzłem dostępnym wewnątrz funkcji składowych, który zawsze
‫wskazuje konkretną, bieżącą instancję, której używamy.
‫Więc cały punkt patrzenia na funkcje składowe na pierwszym miejscu, powodem, dla którego zaczęliśmy,
‫były te węzły w planach poziomów, sposób, w jaki otrzymujemy zaciek statyczny, otrzymujemy wektor w przód,
‫a następnie dodajemy do nich impuls.
‫Czują, że powinny żyć na pocisku BP.
‫I właśnie do tego chciałbym cię rzucić wyzwanie.
‫Więc to jest trochę skomplikowane oskarżenie, ale zbliżamy się do końca sekcji.
‫Więc przeprowadzę Cię krok po kroku.
‫Więc zrobię func uruchamiania.
‫Shine on the BP project, stworzony również na projektach BP.
‫Przejdę do tej części plus i dodam nową.
‫Nazwij to uruchomienie.
‫Następnie wytnij i wklej węzły z planów poziomów do tej nowo utworzonej funkcji i upewnij
‫się, że podłączasz piny wykonawcze itp.
‫Teraz spróbujesz skompilować.
‫Nie robiliśmy tego zbyt często w projektach, ale kompilacja pozwala po prostu
‫sprawdzić pisownię kodu i upewnić się, że nie ma żadnych błędów, które kompilator Blueprint może przewidzieć.
‫Tak więc robisz to w ten sposób, że przechodzisz do przycisku w lewym górnym rogu i klikasz kompiluj, a jeśli
‫są jakieś błędy, pojawią się one na dole w małym okienku zwanym wynikami kompilatora.
‫Widać, że kompilacja się powiodła, ale tutaj pojawią się wszelkie błędy, a czasami w węźle
‫pojawi się trochę czerwonego koloru, aby wskazać, gdzie jest błąd.
‫Chciałbym zobaczyć, czy możesz spróbować zrozumieć, o czym mówi ten błąd, i spróbować naprawić błąd
‫za pomocą nowego węzła własnego, o którym się nauczyliśmy.
‫A potem musisz iść dalej i wywołać tę funkcję z planów poziomów, przeciągając instancję, tak jak
‫zrobiliśmy to dla naszego wydruku, przeciągnij węzeł z instancji nowego pocisku utworzonego z węzła
‫odradzania i wywołaj funkcję uruchamiania.
‫Wstrzymaj wideo i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Przejdę więc do naszego pocisku BP, nacisnę przycisk plus obok funkcji w panelu
‫z moim planem i wpiszę launch, aby nazwać funkcję, wróćmy do planu naszego poziomu, wytnijmy węzły
‫i przejdźmy do pocisk BP i wklej je.
‫Teraz muszę podpiąć wykonanie od uruchomienia, aby dodać impuls, a teraz mam zamiar trafić, skompilować
‫i widzisz, że pojawia się błąd na statycznym zacieraniu lub dostaję węzeł zacierania statycznego.
‫A jeśli spojrzysz na wyniki kompilatora, zobaczysz, że używa nieprawidłowego celu.
‫Więc docelowo to wejście tutaj nie jest poprawne.
‫Teraz, jak ci zasugerowałem, możesz kliknąć prawym przyciskiem myszy i wpisać self, aby uzyskać odniesienie do siebie, a
‫następnie wprowadzić to self do celu.
‫Teraz, jeśli ponownie naciśniesz kompilację, zobaczysz, że błąd zniknął
‫i został skompilowany pomyślnie, ponieważ teraz jest w stanie pobrać statyczne komponenty z bieżącego pocisku.
‫Ta funkcja uruchamiania jest wywoływana.
‫Jeśli więc wrócimy teraz do naszych planów poziomów, możemy pobrać pin wyjściowy z naszego aktora odradzania i możemy
‫wpisać launch, aby wywołać naszą funkcję uruchamiania.
‫Możesz zobaczyć, że kod wykonawczy został automatycznie podłączony dla mnie, a następnie po funkcji
‫uruchamiania możemy podłączyć naszą funkcję drukowania twojego imienia, jeśli chcemy, chociaż było to tylko
‫w celach debugowania i demonstracji, a jeśli to przetestujesz, możesz Widzę, że nadal działa pomyślnie,
‫z wyjątkiem kodu, który zajmuje się uruchamianiem życia na samym pocisku.
‫Świetna sprawa.
‫W tym wykładzie funkcje składowe poznaliśmy jedną z podstawowych koncepcji programowania obiektowego.
‫Do zobaczenia w następnym.