‫Cześć i witaj.
‫W tym wykładzie przyjrzymy się, jak możemy dodać dynamiczny tekst do naszych komunikatów dziennika za
‫pomocą łańcuchów w C++.
‫Zanurzmy się więc i dowiedzmy się o łańcuchach w C++.
‫Widzieliśmy więc, jak wydrukować kilka prostych rzeczy z naszego dziennika interfejsu użytkownika,
‫ale co, jeśli chcesz wydrukować więcej tekstu, na przykład imię aktora, a nawet coś
‫bardziej skomplikowanego, na przykład tekstową reprezentację wektor?
‫Cóż, zazwyczaj nie ma specyfikatorów formatu, ponieważ specyfikatory formatu pojawiły się w erze C,
‫który jest bardzo podstawowym językiem programowania w porównaniu z C++.
‫A więc pewnych rzeczy po prostu nie wymyślono w tamtym czasie.
‫Tak więc rzeczy takie jak wektory nie byłyby uwzględniane w sposób, w jaki je formatujemy i określamy.
‫Więc zwykle używamy do tego ciągów.
‫Jak już powiedzieliśmy w przeszłości, łańcuchy to tylko zmienne tekstowe.
‫Są to zmienne zawierające tekst, dzięki czemu możemy deklarować ciągi.
‫W C++ użyliśmy wektorów F, gdzie wcześniej używaliśmy wektorów.
‫Tutaj użyjemy ciągu jako typu dla ciągu, więc możemy mieć ciąg.
‫I na razie wstawię mój ciąg jako nazwę zmiennej.
‫A jak ustawić wartość ciągu?
‫Cóż, już trochę to widzieliśmy.
‫Te podwójne cudzysłowy oznaczają wartość ciągu w C++.
‫Tak więc wszystkie te wyrażenia trafiają do tego tutaj, w którym mamy podwójne
‫cudzysłowy również w nagłówku pliku, gdzie mamy podwójne cudzysłowy dla kategorii, która jest wyrażeniem łańcuchowym.
‫Więc co możemy zrobić, to ustawić moją zmienną ciągu z tego i zamierzam powiedzieć moją wartość ciągu tylko po to,
‫aby dać nam wyobrażenie o tym wejściowym średniku na końcu wiersza, a następnie jak możemy to pokazać w instrukcji
‫log ?
‫Więc po prostu usunę odległość przesunięcia stąd jako argument do dziennika i zmienię
‫tekst w komunikacie dziennika, aby powiedzieć, oto mój dwukropek ciągu, a następnie zamiast określenia F, tym razem użyj procent
‫s do oznaczenia łańcucha, który chcemy wydrukować.
‫A następnie argument, który ponownie przekazujemy do funkcji dziennika URI między tymi dwoma nawiasami,
‫będzie moim ciągiem.
‫Teraz niestety byłoby świetnie, gdyby to po prostu działało samo.
‫Niestety, w Unreal jest trochę komplikacji, że nie przyjmą prostego ciągu jako
‫argumentu do dziennika URI.
‫Potrzebuje tu trochę operatora konwersji.
‫Robimy to w ten sposób, że umieszczamy gwiazdkę przed moim ciągiem, a on po prostu konwertuje
‫go z ciągu F na format, którego szuka wewnętrznie w dzienniku Yule, nie musimy wchodzić
‫w zbyt wiele szczegółów dlaczego to robi.
‫To jest poza poziomem, który musimy znać w tym momencie.
‫Myślę, że po prostu ważne jest, aby się tego nauczyć, ponieważ kiedy robimy procent se, zawsze potrzebujemy
‫gwiazdy przed naszymi strunami f.
‫Zobaczmy więc, czy to zadziałało, przechodząc do Unreal i naciskając przycisk kompilacji.
‫A potem zamkniemy kodowanie na żywo, wciśniemy play, otworzymy dziennik wyjściowy i proszę bardzo, oto
‫mój ciąg, moja wartość ciągu.
‫Czyli wyświetla wartość w moim łańcuchu.
‫Ale oczywiście ten fragment kodu, który właśnie napisałem, nie jest szczególnie przydatny, ponieważ cóż, mogłem po
‫prostu wpisać tutaj ciąg.
‫Po co zawracać sobie głowę tym całym biznesem zastępczym?
‫Cóż, bardziej interesujące jest to, że zamiast tego wstawiamy dynamiczną wartość do tej zmiennej, abyśmy mogli
‫to zrobić, uzyskać nazwę i wywołać to.
‫Jest to funkcja dostępna tutaj w aktorze ruchomej platformy, która otrzymuje imię aktora, który widzimy
‫na obrysie poziomu.
‫Jeśli możemy umieścić ją w zmiennej, wywołam tę nazwę zmiennej zamiast ciągu i zmienię jej nazwę
‫również tutaj w dzienniku interfejsu użytkownika.
‫Więc możemy zmienić tekst komunikatu dziennika, aby powiedzieć Rozpocznij odtwarzanie dwukropka, a wtedy będzie to
‫imię aktora.
‫Wróćmy więc do nierzeczywistego zatrzymania gry, naciśnij, skompiluj, przejdź dalej, naciśnij play i otwórz dziennik wyjściowy.
‫Widzicie, że otrzymujemy komunikaty zaczynają się grać w ruchu platforma pierwsza zaczyna grać w ruchu.
‫Platforma trzy pchająca.
‫Kuba trzy pchanie, pięć pchnięć, utrzymanie siedmiu.
‫Więc mamy początek gry i wszystkie imiona różnych aktorów.
‫Teraz może to być bardzo przydatne, ponieważ później na linii, na której drukujemy
‫odległość przestrzelenia, nie zawsze jest jasne, kto w tym przypadku przestrzelił, ponieważ wszyscy razem się pomieszali.
‫Tak więc możliwość wydrukowania nazwy aktora, który tworzy komunikat dziennika, może być bardzo pomocna
‫w ustaleniu, gdzie jest problem.
‫Wydarzenie.
‫Chciałbym więc rzucić wyzwanie, abyś zarejestrował nazwę za pomocą tego dziennika przekroczenia, abyśmy mogli zobaczyć, kto
‫przestrzelił i o ile.
‫Dodasz więc zmienną dla imienia aktora, tak jak zrobiliśmy to w Rozpocznij zabawę.
‫Dostaniesz do niego nazwę i dodasz procent określony w dowolnym miejscu w swoim opisie
‫dziennika, w którym drukujemy to przekroczenie, a ty dodasz argument dla tej
‫nazwy.
‫Nadal chcemy, aby zmienna przeregulowania znajdowała się na liście argumentów, ale w końcu przed tą zmienną
‫będziesz musiał również umieścić argument dla nazwy.
‫I tutaj ważne jest, aby kolejność argumentów była zgodna z kolejnością specyfikatorów w Twojej
‫wiadomości.
‫Więc jeśli wstawisz procent jak przed procentem F, to taka kolejność.
‫Nazwa powinna iść przed przekroczeniem lub powinieneś zrobić to na odwrót, jeśli zrobiłeś to drugie.
‫I nie zapomnij dodać początku przed nazwą zmiennej, aby przekonwertować ciąg na coś, z czego
‫może korzystać dziennik, który rejestrujesz.
‫Wstrzymaj wideo i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Zaczniemy więc od pobrania zmiennej i nie jest to absolutnie konieczne, ale użyjemy tej
‫zmiennej dla uproszczenia i utrzymamy nieco krótszą linię.
‫Tak więc otrzymamy ciąg znaków o nazwie name używający wielkich liter, zwykle rozpoczynających nazwy naszych
‫zmiennych.
‫Wprowadzimy nazwę do tej zmiennej, a następnie użyjemy jej jako argumentu.
‫Ale gdzie mam umieścić mój format, określić w komunikacie dziennika?
‫Cóż, zamierzam umieścić to jako pierwszą rzecz w moim opisie dziennika, aby wyjaśnić, że jest to wiadomość
‫dziennika pochodząca z tej rzeczy.
‫Więc postawię procent na pierwszym miejscu, a to oznacza, że moja argumentacja musi iść przed argumentem
‫przestrzelenia.
‫Więc mamy zamiar umieścić tutaj nazwę i musimy umieścić gwiazdkę przed nazwą,
‫aby odpowiednio ją przekonwertować.
‫Wróćmy teraz do edytora.
‫Zatrzymaj odtwarzanie hit rekompilacja, zamknij terminal, naciśnij play i otwórz dziennik wyjściowy.
‫I widać, że zaczynamy otrzymywać nasze komunikaty o tikach, które pchają Kub przestrzelił
‫przez jedno pchnięcie q11.
‫Widać tutaj, że można wyciągnąć wniosek, którego wcześniej nie mogliśmy wyciągnąć, a mianowicie, że szybciej
‫poruszające się platformy, przesuwające się kostki to te, które przewyższają o więcej, podczas gdy
‫ruchome platformy wydają się przestrzeliwać o mniej, co Oczekiwałbym.
‫Ale dobrze jest widzieć to potwierdzone w logach.
‫Świetna sprawa.
‫To tyle w przypadku naszej małej dywersji związanej z wyrębem.
‫Mam nadzieję, że uznałeś to za interesujące i do zobaczenia w następnym wykładzie.