‫Cześć i witaj.
‫W tym wykładzie przyjrzymy się specjalnej funkcji zwanej konstruktorem, która pozwala
‫nam nadawać domyślne wartości właściwościom w naszej klasie.
‫Zobaczymy, kiedy zostanie wywołany w edytorze.
‫Zanurzmy się i dowiedzmy się.
‫Teraz, z tym komponentem wyzwalacza, chciałbym dodać tutaj funkcję komponentu tick, abyśmy
‫mogli sprawdzić, które komponenty, które inne aktorzy obecnie nakładają się na ten komponent wyzwalacza i
‫moglibyśmy aktywować, jeśli jest to właściwy rodzaj aktora.
‫Problem polega na tym, że zobaczymy w czym jest problem.
‫Spróbujmy zaimplementować funkcję tik, jeśli przejdziemy do chwytania, aby zobaczyć, jak powinna wyglądać
‫deklaracja funkcji składowej, musi być w sekcji public.
‫To wirtualna pustka, elementy tiku, czas delta.
‫Jest wiele parametrów, więc po prostu skopiujmy.
‫Przejdź do nagłówka komponentu tiku, dodaj go pod naszym początkiem odtwarzania, a następnie skopiujemy tę
‫definicję i przejmiemy ją do kroku komponentu wyzwalacza.
‫I jedna rzecz, którą zauważysz, to kilka kluczowych słów, które możemy usunąć.
‫Możemy usunąć wirtualne słowo kluczowe.
‫To generalnie zasada, której możemy się trzymać.
‫Możemy również usunąć słowo kluczowe override.
‫To są rzeczy, które nie muszą znajdować się w pliku C++.
‫Musimy dodać nazwę klasy.
‫Wypróbuj składnik dwukropek, dwukropek, a następnie zastępujemy nasz średnik kilkoma nawiasami klamrowymi i musimy
‫wywołać składnik super tika.
‫Więc ponieważ jest to dość długa rozmowa, skopiuję ją z, wezmę kopię i wkleję ją do tego.
‫Teraz to, co robi, to zasadniczo wywoływanie funkcji składnika tiku rodzica.
‫Czyli rodzic w tym przypadku jest naszym komponentem pudełkowym.
‫Dlatego ważne jest, aby to wywołać w przypadku, gdy istnieje jakakolwiek funkcjonalność, której należy użyć i włączyć, aby
‫ten komponent działał.
‫Jeśli tego nie zrobimy, w zasadzie ominiemy jakąkolwiek z tych funkcji i rzeczy mogą się zepsuć.
‫Tak bardzo ważne.
‫Zawsze pamiętaj, że jest to wezwanie do super, gdy wdrażamy komponent start, play i tick.
‫Teraz skopiujmy nasz komunikat dziennika z Begin Play i umieśćmy go w składniku tiku zamiast mówić składnik
‫tiku.
‫Logując się, aby powiedzieć, że składnik tiku jest tutaj zaznaczony, a my przejdziemy dalej, skompilujemy i sprawdzimy, czy
‫ten tik rzeczywiście działa.
‫Gdy kompilator zakończy pracę, przejdźmy dalej i naciśnij play, otwórz nasz dziennik wyjściowy i.
‫Hmm, cóż, teraz nic się nie dzieje.
‫Powodem tego jest to, że jeśli chodzi o optymalizację, automatycznie nierealne większość komponentów
‫ma wyłączony haczyk.
‫Tak więc aktorzy zazwyczaj mają go domyślnie włączony, ale komponenty zwykle mają go wyłączony.
‫Tak więc, jeśli spojrzymy na niektóre inne komponenty, które mamy, takie jak nasz ruch, o którym wiemy,
‫że tykanie działa, możesz zobaczyć, że na górze pliku znajduje się to.
‫Przesuwasz funkcję i ma ona ten podstawowy składnik tik kropka B może kiedykolwiek tik równa się prawda, jeśli
‫nie ustawisz tej właściwości w klasie.
‫Więc to jest właściwość klasy jako właściwość klasycznego podstawowego składnika tik i jest to struktura,
‫która ma B może mieć w sobie właściwość tik.
‫Więc to, co tutaj robimy, to ustawianie tej domyślnej wartości w klasie move podczas jej konstruowania.
‫Tym właśnie jest ta funkcja.
‫Nazywa się to konstruktorem i jest funkcją, która jest wywoływana za każdym razem, gdy tworzymy nowy komponent
‫Mover, aby automatycznie ustawić wartości domyślne.
‫Możemy ustawić kilka domyślnych wartości w nagłówku pliku, tak jak to zrobiliśmy, powinno przesunąć czas przenoszenia.
‫Ale alternatywą do robienia kiedykolwiek w pliku nagłówkowym jest to, że możemy ustawić te właściwości
‫w konstruktorze.
‫Teraz chciałbym, abyś zauważył składnię tutaj.
‫Jeśli przejdziemy do kroku przed plikiem, zobaczysz, że konstruktor ma dokładnie taką samą nazwę jak
‫klasa.
‫Zatem you Mover to nazwa klasy dla naszych komponentów Mover, a jej konstruktor jest również nazywany informacją o ruchu.
‫Nie ma też typu zwrotu.
‫Nie ma sensu zwracać czegokolwiek, ponieważ konstruujemy nowy obiekt.
‫Właśnie robimy tę klasę.
‫Wszystko, czego potrzebujemy, to dostęp do właściwości tej klasy, a także zauważ, że jest ona ustawiona na public.
‫Jest to więc część publiczna naszej definicji klasy.
‫Dlatego chciałbym rzucić wyzwanie, abyś umożliwił sobie zaznaczanie.
‫Więc utworzysz konstruktor w nagłówku i pamiętaj, że składnia, którą widzieliśmy zarówno w
‫filmach z przenoszeniem, jak i H i grabbera H, włączysz zaznaczanie, jak widzieliśmy ponownie w tych innych
‫komponentach w ich plikach CP.
‫Więc po prostu możesz skopiować, jak to się robi.
‫Możesz również zalogować się z konstruktora, aby spróbować i zobaczyć, kiedy zostanie wywołany?
‫Czy to jak zacząć grać?
‫A może zostaje wezwany przed wejściem do gry, czy co?
‫Idź, opublikuj film i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Więc przejdziemy do naszego komponentu trig na H i stworzymy nową sekcję publiczną.
‫I tutaj pamiętamy dwukropek na końcu, a następnie musimy nazwać go dokładnie tak samo jak
‫klasa.
‫Więc to nie jest element wyzwalający.
‫To nie ty wyzwalasz, tylko wyzwalasz komponenty w całości.
‫A potem nie mamy żadnych argumentów w tym konstruktorze, więc wstawiamy tylko puste nawiasy i
‫średnik na końcu linii.
‫Teraz możemy przejść do pliku CPP i tutaj możemy wykonać implementację.
‫Ponownie, nie potrzebujemy typu zwracanego.
‫Więc po prostu wyzwalasz składniki, okrężnicę.
‫Dwukropek wyzwalasz komponenty trochę powtarzalne, ale tak to działa.
‫Następnie umieszczamy kilka nawiasów klamrowych i tutaj możemy wykonać dowolny z naszych ustawień kodu, aby nadać domyślne
‫wartości instancji klasy.
‫Więc jeśli przejdziemy do pobrania CPP i przyjrzymy się temu, co robi, widać, że ma swój
‫główny składnik, który punkt techn. B może kiedykolwiek przyjąć za prawdę.
‫Więc wypiszmy to.
‫Pierwotny składnik tick kropka B może kiedykolwiek zaznaczyć B jest po prostu przedrostkiem, którego często używamy, gdy rzeczy
‫mają ustawiony typ logiczny równy true z małą literą t.
‫Tak więc, ponieważ zmiany w konstruktorze nie zawsze są prawidłowo propagowane w kodowaniu na żywo,
‫zamknę edytor.
‫Zamierzam przebudować kod z poziomu programu Visual Studio, a następnie ponownie uruchomić z nowego pliku
‫projektu.
‫Kiedy to zrobię, pójdę dalej i wcisnę odtwarzanie, spójrz na nasz dziennik wyjściowy.
‫I rzeczywiście, widzimy, że element wyzwalający tyka.
‫Więc zamierzam usunąć ten komunikat dziennika, ponieważ jest denerwujący i zamknąłem dziennik wyjściowy w
‫kodzie programu Visual Studio, usuń ten komunikat dziennika w składniku tick.
‫Widzimy, że teraz działa.
‫A my chcieliśmy zrobić log w naszym konstruktorze.
‫Zróbmy więc nowy dziennik z napisem konstruowanie, zobaczmy, czy tym razem kodowanie na żywo może to wykryć, a
‫potem przejdziemy do naszego dziennika wyjściowego i od razu spojrzymy.
‫Nic się tu nie pojawia.
‫Cóż, jeśli pójdę dalej i wcisnę odtwarzanie, spójrz na mój dziennik wyjściowy.
‫Widzę komunikat w dzienniku, że składnik wyzwalacza jest aktywny i na długo przed tym.
‫Właściwie widać, że konstruuje daleko do przodu, kiedy tylko tworzy świat.
‫Zaczyna się konstruować bardzo wcześnie, zanim oczywiście zaczniemy grać, ponieważ musimy przygotować cały świat,
‫zanim zaczniemy grać.
‫Tak się dzieje, gdy wciśniemy Play, ale w rzeczywistości dzieje się to również w edytorze.
‫Więc jeśli wybiorę tutaj jakiegoś aktora, a następnie dodam do niego komponent i dodam nasz wyzwalacz, spójrz na
‫mój dziennik wyjściowy.
‫Wtedy możesz zobaczyć, że wiadomość konstrukcyjna została faktycznie wydrukowana.
‫Musimy więc uważać na to, co robimy w naszych konstruktorach, ponieważ tak naprawdę nazywają się one kodem C++, który jest wywoływany
‫właśnie wtedy, gdy edytujemy, a nawet nie gramy w naszą grę.
‫Obiekty te są tworzone, a zatem konfigurowane i dlatego muszą wywołać ich konstruktor.
‫Zamierzam iść dalej i ponownie usunąć wyzwalacz i trochę wyczyścić, usuwając, tworząc
‫komunikat dziennika i nasz komunikat dziennika rozpoczęcia odtwarzania.
‫Świetna sprawa.
‫W tym wykładzie zobaczyliśmy, jak możemy skonfigurować własne komponenty, tak aby były prawie identyczne z tymi, które zostały
‫utworzone w szablonach dla komponentów sceny i komponentów ACT.
‫Widzieliśmy, jak używać konstruktora do nadania domyślnych wartości właściwościom w naszej klasie.
‫Do zobaczenia na następnym wykładzie.