‫Cześć i witaj.
‫W tym wykładzie mamy piątkę. I. który podąża za nami na całym świecie.
‫Pójdziemy zbadać, kiedy straci mnie z oczu.
‫Więc dość trudno jest stracić.
‫Ale jeśli odejdę za wiele zakrętów, nie będzie w stanie nadążyć i w
‫końcu straci zainteresowanie i wróci do swojej początkowej lokalizacji.
‫To właśnie zamierzamy wprowadzić w tym wykładzie, kończąc zadanie z drzewem zachowań.
‫Zanurzmy się i zobaczmy, jak to się robi.
‫Więc chcemy, aby nasze zadanie zostało wykonane, aby rzeczywiście coś zrobić.
‫A szczególnie chcieliśmy móc oczyścić tę Blackboard Valley, zrobić to, co jest napisane na puszce.
‫Więc jak mamy to zrobić?
‫Cóż, w tym celu musimy przejść do naszej klasy bazowej i przyjrzeć się, co jest tam zaimplementowane.
‫W rzeczywistości musimy przejść o jeden poziom wyżej, co jak widać po odziedziczeniu
‫optymistycznego zadania Blackboard Base.
‫Powyżej mamy węzeł zadania UBC.
‫Użyjmy więc F12, aby przejść do tamtejszej implementacji.
‫A jeśli przewiniesz do góry paska zadań z kropką nagłówka pliku, zobaczysz informacje o
‫tej klasie.
‫A najważniejsze jest to, że są to funkcje wirtualne, które najprawdopodobniej będziemy
‫chcieli zaimplementować.
‫Więc pierwszym z nich jest wykonanie zadania.
‫Jest to wywoływane, gdy zadanie zaczyna się wykonywać.
‫Następnie mamy zadanie tablicowe, w którym zdecydowano, że musimy przestać wykonywać, na przykład dlatego,
‫że warunek stał się fałszywy i mamy skonfigurowaną sygnalizację.
‫Więc przerywa to zadanie.
‫Zadanie tika dzieje się przez cały czas wykonywania zadania, ale nie pierwszy tik.
‫Tak więc pierwsze zadanie wywoła zadanie wykonania, a następnie za każdym razem będzie wywoływać zadanie z zaznaczeniem.
‫Dotyczy to zachowań, które mogą trwać dłużej niż jedno kliknięcie, np. przejście do wroga może wymagać
‫kilku ruchów.
‫Tak więc zadanie kleszczowe pozwala nam coś zrobić.
‫Każde kliknięcie i wiadomość dotyczy innych rzeczy niż przerwanie, które mogą wysłać wiadomość do tego
‫zadania.
‫Tak naprawdę nie musimy się martwić o tę konkretną funkcję.
‫Więc pierwsze trzy są gotowe.
‫Ci byli bardziej zainteresowani i widząc, że naszym zadaniem jest po prostu wyczyszczenie wartości tablicy, gdy
‫tylko zostanie ona wykonana, a potem od razu się zakończy.
‫Nie musi robić rzeczy przez wiele kleszczy.
‫Jesteśmy zainteresowani wykonaniem zadania.
‫Więc jeśli szukamy w tym nagłówku pliku w celu wykonania zadania, możesz zobaczyć pełną sygnaturę tutaj,
‫a typem zwracanym jest ten wynik węzła IBT.
‫I zajmuje dwie rzeczy: komponent właściciela i pamięć węzła.
‫Powód, dla którego zajmuje pamięć węzłów, jest trochę
‫skomplikowany, ale ważne jest, aby wiedzieć, że klasa zadania lub instancja klasy zadania jest tylko jedna na wszystkich tablicach.
‫Zasadniczo są one współdzielone między wszystkim, dlatego jeśli chcesz zapisać informacje związane
‫z węzłem w jednym konkretnym drzewie zachowania, to co musisz zrobić, to zapisać je w tym
‫wskaźniku pamięci.
‫Ale nie zamierzamy robić nic z tym związanego.
‫To trochę bardziej zaawansowane, żeby to zrobić.
‫Są też inne sposoby na obejście tego, takie jak umożliwienie Unrealowi tworzenia wielu instancji dla każdego drzewa zachowań,
‫co może być trochę schludne lub nie, ale jest to nieco bardziej wydajny sposób i nie
‫musimy się o to martwić to.
‫Ostatecznie to, co nas interesuje, to fakt, że możemy dostać się do naszego komponentu właściciela, komponentu drzewa zachowań, a stamtąd
‫możemy dostać się do innych rzeczy, takich jak pionek itp. Ale to też temat
‫innego wykładu.
‫Ciekawe i ważne jest więc teraz samo wdrożenie i wykonanie zadania.
‫Skopiujemy więc podpis, przejdźmy do punktu H Clear Blackboard Value i zobaczmy, czy to jest
‫teraz publiczne?
‫Myślę, że będzie to chronione, ponieważ znajduje się w sekcji domyślnej.
‫Więc stworzymy sobie chronioną sekcję i wkleimy ją tam, a następnie stworzymy opcję put
‫override, aby upewnić się, że jest ona bezpieczna.
‫A potem stworzymy implementację w C++, pamiętając, że zawsze chcemy wywoływać
‫super, gdy nadpisujemy zadanie tak super execute komponentem właściciela i pamięcią węzła, która jest
‫tutaj wywoływana do naszego rodzica.
‫A potem to, co chcemy zrobić, to chwycić naszą tablicę, abyśmy mogli wyczyścić klucz.
‫I są tutaj dwie ważne rzeczy.
‫Po pierwsze, skąd wiemy, jaki klucz został wybrany?
‫Cóż, jeśli przejdziemy do naszej tablicy opartej na H, widać, że jedną z metod jest uzyskanie wybranego
‫klucza tablicy.
‫Możesz więc łatwo nazwać to dowolnym C++, pobrać wybrany klawisz tablicy i to wróci.
‫Jeśli najedziemy na nią kursorem, zwróci nazwę F, nazwę klawisza tablicy, który został wybrany w drzewie
‫zachowań.
‫Teraz inną rzeczą, którą musimy zrobić, jest rzeczywiście możliwość uchwycenia tablicy związanej z tym
‫drzewem zachowań.
‫Więc do tego mamy własny komp.
‫Zwróćmy teraz uwagę, że rodzaj przekazywanej tutaj kompozycji właściciela jest w rzeczywistości odniesieniem, a nie wskaźnikiem.
‫Więc na początek nie może być zerowa.
‫To wspaniale.
‫Ale oznacza to również, że musimy użyć operatora DOT zamiast
‫operatora strzałki, ponieważ nie używamy wskaźnika i stąd możemy po prostu uzyskać elementy tablicy.
‫To po prostu dostaje element tablicy, jeśli najedziesz na niego kursorem.
‫Ten jest wskaźnikiem do elementu tablicy, więc będziesz musiał użyć operatorów strzałek.
‫Więc już wiemy, jak wyczyścić klawisze na tablicy.
‫To będzie twoje wyzwanie.
‫Miejmy więc nadzieję, że wyzwanie nie jest zbyt skomplikowane.
‫Chcesz wyczyścić wybrany klucz.
‫Możesz sprawdzić, gdzie zrobiliśmy to wcześniej.
‫Czy potrzebujesz do tego żadnych dodatków?
‫Może tablica tego potrzebuje.
‫Uwzględnij użyj klucza wybranego w drzewie zachowań jako klucza, który chcemy wyczyścić.
‫Więc zatrzymaj wideo i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Więc spróbujmy.
‫Więc pierwszą rzeczą jest to, że mamy nasz element tablicy.
‫Użyjmy tutaj operatora strzałki.
‫Nic się nie dzieje.
‫Więc zakładam, że potrzebuję i rzeczywiście jest kilka czerwonych zawijasów, które potrzebuję dołączyć tutaj hash, aby zrobić
‫drzewo zachowań, a następnie element tablicy tu i teraz.
‫Mam nadzieję, że moje autouzupełnianie powinno działać, co pozwoli mi uzyskać jasność.
‫Spróbujmy tylko odświeżyć nasze wspomnienia.
‫Gdzie zrobiliśmy to wcześniej?
‫Jeśli podejdziemy, żeby strzelić, kontroluję A i patrzę, co tu mamy.
‫Mamy wyraźną wartość.
‫To jest ten, którego szukamy.
‫Spróbujmy więc tę wyraźną wartość.
‫A co to zabiera?
‫Przyjmuje klawisz F lub nazwę F, świetną nazwę f, którą możemy uzyskać.
‫A gdzie powiedzieliśmy, że możemy to uzyskać za pomocą klawisza pobierz wybraną tablicę, który znajduje się w tej klasie, ponieważ znajduje
‫się w klasie nadrzędnej.
‫Więc pobierz wybrany klucz tablicy Po prostu, usuwamy wartość wybranego klawisza tablicy.
‫Teraz ostatnia rzecz, którą musimy zrobić.
‫To nie była część wyzwania, więc nie martw się.
‫Jeśli nie wiedziałeś, że musimy zwrócić, ponieważ istnieje wartość zwracana dla zadania wykonania jasnej
‫wartości tablicy, a wartość zwracana jest dość interesująca.
‫Spójrzmy.
‫Podążmy za nim klawiszem F12 i zobaczmy, jakie różne statusy możemy zwrócić z naszego testu wykonania.
‫Teraz udało się pierwszemu.
‫Świetny.
‫To w zasadzie sygnalizuje drzewu zachowań, że wykonanie tej notatki zostało zakończone i możemy przejść
‫do następnej.
‫Znowu się nie udało.
‫To jest skończone, więc możemy przejść do następnego, ale tym razem mówi, że się nie udało.
‫Daje to różne wskazania, na przykład, naszym węzłom sekwencji lub naszym wybranym węzłom, co do tego, co
‫te węzły powinny faktycznie robić.
‫Potem zostaliśmy przerwani, co w zasadzie jest tym samym, co porażka i mamy postęp.
‫Jeśli wrócisz w trakcie wykonywania zadania, będzie to oznaczać, że musisz nadal wywoływać tick, dopóki nie
‫powiem ci inaczej, dopóki nie powiem, że skończyłem, teraz nie będziemy tego używać.
‫Ale dobrze jest pamiętać, że jeśli chcesz utworzyć zadanie, które długo działa, będzie przebiegało
‫z wieloma tikami, będziemy musieli wrócić w toku.
‫Ale jak powiedziałem, chcemy, żeby się udało.
‫Więc wejdźmy i zróbmy to.
‫Zwróć wynik pustego węzła.
‫Okrężnica.
‫I to się uda, ponieważ udało nam się oczyścić tę wartość w zasadzie bez względu na wszystko.
‫Możemy więc iść dalej i zapisać to wszystko, przejść do edytora i nacisnąć kompilację.
‫A kiedy to się skończy, przejdźmy dalej i otwórzmy naszą sztuczną inteligencję i drzewo zachowań.
‫Więc to jest jeden wróg Beattie?
‫Podłączam go do głównego okna i zobaczmy.
‫Mamy czystą tablicę.
‫Wartość powinna teraz umożliwiać nam przejście do ostatniej znanej lokalizacji, wyczyszczenie wartości tablicy,
‫odczekanie pięciu, a następnie powinniśmy zobaczyć, że badanie tej ostatniej znanej lokalizacji gry powinno być wyłączone, więc
‫powinniśmy wrócić do naszej początkowej lokalizacji .
‫Zobaczmy więc, czy to zachowanie działa teraz, gdy zadanie zostało w pełni zaimplementowane.
‫Więc on podchodzi do mnie, prowadzi śledztwo.
‫Pójdę się schować.
‫Więc wejdźmy.
‫Hides nadchodzi do zbadania.
‫Chodźmy znów się schować.
‫Więc idź i schowaj się.
‫Zobaczmy, czy uda nam się go tam dostrzec.
‫Powinien w tej chwili czekać, a potem wraca do swojego miejsca startu, co niestety powoduje,
‫że krzyżuje się ze mną.
‫Zobaczmy więc, czy to rzeczywiście działa tak, jak się spodziewamy, wyprowadzając wroga przez okno i dokując po
‫prawej stronie i umieszczając nasze główne okno po lewej stronie.
‫Jest trochę ciasno, ale damy radę, a potem spróbujemy jeszcze raz uciec od tego gościa
‫i zobaczyć, co się stanie z jego zachowaniem.
‫Widać, że przenosi się do ostatniego znanego miejsca gry.
‫A teraz czeka, oczyściwszy dolinę.
‫A potem widać, że on też się poruszy.
‫Widać, że te czerwone paski na dekoratorach mówią nam, że żaden z tych dwóch warunków nie
‫jest prawdziwy.
‫Więc nie może zrobić żadnego z tych, w końcu przenieść się do miejsca początkowego.
‫Więc teraz migocze, ponieważ w zasadzie nie może nic zrobić.
‫Tak więc w zasadzie na tym wykładzie widzieliśmy, w jaki sposób możemy uzyskać zadania bitów w celu wykonania kodu, rozumiejąc
‫różne statusy, które można przywrócić z zadania wykonania, jak uzyskać tablicę z
‫zadania, a także jak włączyć aktualnie wybrany klawisz zadanie tablicy.
‫W następnym wykładzie zobaczymy, jak możemy przejąć świat poza drzewem zachowań tablicy, jak możemy
‫przejąć kontrolę nad pionkiem z zadania drzewa zachowań.
‫Zobaczę to.