‫Witamy spowrotem.
‫Stworzyliśmy więc już nowy wskaźnik komponentu kapsułki i zadeklarowaliśmy go w przód, więc nie musieliśmy
‫dołączać pliku nagłówkowego do bazy po h.
‫Teraz nadszedł czas na skonstruowanie podobiektu komponentu kapsuły dla naszego podstawowego POM. A kiedy to
‫zrobimy, ustawimy nasz komponent główny jako kapsułę.
‫Jak więc właściwie skonstruować komponent kapsuły?
‫Proces jest bardzo nierealny.
‫Nierealny silnik specyficzny dla silnika stworzył domyślny obiekt podrzędny.
‫To jest funkcja szablonu.
‫Funkcja szablonu dostosowuje się do wybranego typu, dzięki czemu możemy wybrać konkretny typ i utworzyć domyślny.
‫Obiekt podrzędny dostosuje się do tego typu.
‫Przekazujemy typ, który chcemy skonstruować, aby utworzyć domyślny obiekt podrzędny.
‫W przeciwieństwie do zwykłej funkcji ma te nawiasy kątowe.
‫W tym miejscu przekazujemy typ do skonstruowania.
‫Teraz utwórz domyślny obiekt podrzędny również przyjmuje argument w nawiasach.
‫Będzie to nazwa, którą przypisujemy do podobiektu.
‫Różni się to od nazwy zmiennej i jest przekazywana jako literał ciągu.
‫Oto przykład.
‫Załóżmy, że chcemy utworzyć komponent siatki statycznej u.
‫Wzywamy więc create default sub object i kończymy nawiasy kątowe, które przekazujemy w składniku siatki statycznej typu u,
‫aw nawiasach nadajemy mu nazwę.
‫Teraz już wiesz, że w przypadku literałów ciągów znaków powinieneś użyć makra tekstowego.
‫Przekazujemy więc nasz literał ciągu znaków za pomocą makra tekstowego.
‫Jak wspomniałem, jest to nazwa wewnętrzna używana przez Unreal Engine.
‫Istnieją inne funkcje, które tego używają.
‫Na przykład istnieje funkcja o nazwie pobierz domyślny obiekt podrzędny według nazwy.
‫Pobiera podobiekt należący do określonego obiektu i możesz go wywołać przekazując określoną nazwę
‫i będzie szukał podobiektu o wybranej nazwie.
‫Więc ogólne wywołanie funkcji do utworzenia domyślnego podobiektu wygląda tak.
‫Typ znajduje się w nawiasach ostrych, a nazwa w nawiasach.
‫Teraz utwórz domyślny obiekt podrzędny zwraca adres nowo utworzonego komponentu.
‫Tak więc w naszym przypadku, jeśli przekazaliśmy jako typ komponentu use static mesh, otrzymujemy adres komponentu
‫use static mesh i możemy go przechowywać we wskaźniku, ponieważ wskaźniki przechowują adresy rzeczy.
‫Powiedzmy, że tworzymy wskaźnik użycia statycznego komponentu siatki o nazwie siatka.
‫Następnie możemy wziąć ten adres zwrócony przez utworzenie domyślnego obiektu podrzędnego i zapisać ten adres w naszym wskaźniku
‫siatki.
‫Teraz, kiedy już wiesz, jak działa tworzenie domyślnego podobiektu, użyjesz tego do skonstruowania
‫obiektu komponentu kapsuły.
‫Zrobisz to w podstawowym konstruktorze PON, użyj Utwórz domyślny obiekt podrzędny, aby skonstruować przejście
‫komponentu kapsuły w twoim komponencie kapsuły i nawiasy kątowe jako typ do skonstruowania i przekazania w
‫zderzaczu kapsułek zawiniętym w makro tekstowe w nawiasach.
‫Zatrzymaj wideo i dodaj to teraz do podstawy CP w konstruktorze.
‫Dobra.
‫Więc jesteśmy tutaj w Bass Pond.
‫CP i chcielibyśmy zbudować komponent kapsuły.
‫Więc weźmiemy naszą zmienną kapsułową comp i przypiszemy wartość zwróconą przez utworzenie domyślnego
‫podobiektu.
‫Teraz, jak widzieliśmy, ta funkcja szablonu ma nawiasy kątowe i nawiasy, i widzieliśmy, że typ
‫znajduje się w nawiasach ostrych, użyjemy komponentu kapsuły U.
‫W nawiasach użyjemy makra tekstowego i nazwiemy ten zderzacz kapsuł.
‫I tam idziemy.
‫Teraz używamy komponentu kapsuły do skonstruowania obiektu tego typu.
‫A kiedy używamy typu, dołączamy jego plik nagłówkowy.
‫Zobaczmy teraz, co się stanie, gdy spróbujemy skompilować.
‫Teraz znowu możesz użyć kodowania na żywo lub możesz skompilować tutaj w kodzie VZ.
‫W tej sekcji będę kompilował kod VTS.
‫Więc możesz po prostu wiedzieć, że kiedy kompiluję, zamknąłem edytor Unreal Engine i po prostu kompiluję
‫stąd.
‫Chciałbym zobaczyć komunikat o błędzie tutaj i kod VTS teraz próbujący skompilować to tutaj.
‫Otrzymujemy inny błąd niż ten, który widzieliśmy w poprzednim filmie.
‫Użycie niezdefiniowanego składnika kapsułki typu U.
‫Tym razem próbujemy użyć typu komponentu kapsułki U w pliku CPP do skonstruowania obiektu.
‫Oto kod błędu, jeśli chcesz wyszukać w Google ten konkretny rodzaj błędu, aby uzyskać więcej informacji.
‫Tak więc teraz widzieliśmy dwa różne typy błędów kompilacji w tej części kursu i znamy
‫przyczynę tego konkretnego błędu.
‫Nie dołączyliśmy Ci składnika kapsułki.
‫Teraz tutaj jest komponent kapsuły U w dokumentacji Unreal Engine, a oto dodatek, którego potrzebujemy dla
‫tego typu.
‫Więc zamierzam to skopiować i wkleić tutaj na górze Base Pond CPP.
‫Teraz, jeśli spróbuję ponownie skompilować, kompilacja się powiodła, nie widzimy błędów.
‫Zamierzam teraz zamknąć terminal.
‫Stworzyliśmy więc składnik kapsułki.
‫Następną rzeczą, którą chciałbym zrobić, jest upewnienie się, że komponent kapsułki jest korzeniem.
‫Teraz zobaczyliśmy, jak przypisać komponent jako główny i plany, klikając i przeciągając w C++.
‫To także całkiem proste.
‫Po prostu bierzemy tę zmienną głównego komponentu i przypisujemy jej wartość kapsułki comp.
‫Teraz określiliśmy, że komponent kapsuły powinien być komponentem głównym.
‫Skompilujmy to jeszcze raz.
‫A teraz, po udanej kompilacji, chciałbym wrócić do edytora.
‫Dobra.
‫Otworzyłem edytor i zamierzam wziąć moją podstawową -- klasę C++ i przeciągnąć jedną.
‫A teraz sprawdź to.
‫Widzimy składnik kapsułki.
‫Teraz na świecie, liniowiec.
‫Pokazuje, że baza -- którą właśnie przeciągnąłem, jest teraz zaznaczona tuż nad wyszukiwaniem w panelu
‫szczegółów.
‫Mogę przeciągnąć to w dół i zobaczyć wszystkie komponenty na tej podstawie --.
‫A wszystko, co widzimy, to ta kapsuła, ponieważ jest to jedyny jej komponent.
‫Dodaliśmy więc teraz nasz komponent kapsuły i widzimy tego rezultat, gdy faktycznie dodamy instancję
‫tej klasy do świata w edytorze Unreal Engine.
‫Podsumowując, nauczyliśmy się budować komponent kapsuły z C++ i uczyniliśmy go głównym
‫komponentem, przypisując wartość zmiennej root component do kapsułka comp.
‫W następnym filmie dodamy więcej komponentów do naszej bazy w klasie C++.
‫Zobaczymy się wtedy.