Przekaż zmienne Liczba całkowita (int) lub Wartość zmiennopozycyjna (float) do widżetu za pomocą funkcji konwersji ToText(Int) i ToText(Double). Funkcje konwersji "ToText" konwertują zmienną typu liczba całkowita (int) lub wartość zmiennopozycyjna (float) na typ tekst (text), który można wyświetlać w widżecie. Zmienna nie będzie wyświetlana w widżecie, jeśli pozostawi się typ widżetu inny niż tekstowy.
W rzeczywistości funkcja konwersji nosi w Edytorze nazwę Na tekst (wartość podwójnej precyzji) zamiast Na tekst (wartość podwójnej precyzji), ale służy ona do tego samego celu.
Poniżej znajdują się dwa przykłady ilustrujące użycie obu funkcji konwersji.
Przykład funkcji Na tekst (liczba całkowita): Niestandardowy widżet Postępometru śledzi postęp gracza, który podnosi kolejne kawałki boczku.
Przykład funkcji Na tekst (wartość podwójnej precyzji): Widżet niestandardowego okna dialogowego otwiera wyskakujące okienko z możliwymi odpowiedziami na pytanie o ciekawostki. Licznik czasu odliczania służy do zamknięcia licznika czasu, jeśli odpowiedź nie zostanie wybrana przed upływem czasu.
Na tekst (liczba całkowita)
W tym przykładzie tworzymy niestandardowy widżet Postępometru, aby śledzić liczbę kawałków boczku zebranych przez gracza. Wykonaj kroki opisane w dokumencie Wyskakujące okna UI, aby utworzyć Widżet użytkownika i nadać mu nazwę Tracker_Widget.
Konfiguracja widżetu
Aby skonfigurować Tracker_Widget, dodaj do panelu Hierarchia następujące widżety w przedstawionej poniżej kolejności:
Nakładka
Obraz (dokonaj zagnieżdżenia pod pozycją Nakładka i zmień nazwę na Background)
Pole stosu (dokonaj zagnieżdżenia pod pozycją Nakładka)
Blok tekstowy (dokonaj zagnieżdżenia pod pierwszym polem stosu i zmień nazwę na Tytuł, który będzie tytułem Postępometru "{Tracker Title}")
Pole stosu (dokonaj zagnieżdżenia pod pierwszym polem stosu)
2 x blok tekstowy (dokonaj zagnieżdżenia pod drugim polem stosu; Zmień nazwę pierwszego bloku tekstowego na CurrentValue "{Current}", a drugiego bloku tekstowego na tekst narracyjny "Zebrano boczek")
Potrzebujesz bloku tekstowego, który będzie wyświetlał aktualną liczbę kawałków boczku zebranych przez gracza. Tracker_Widget jest skonfigurowany tak, aby zawierał blok tekstowy TrackerTitle, dzięki czemu właściwość Nazwa może być przekazywana z modelu widoku do bloku tekstowego Current:
W ten sposób skonfiguruj swój widżet
Oto, co gracz zobaczy w grze, gdy zbierze boczek:
Konfiguracja funkcji konwersji
Funkcja konwersji Na tekst (liczba całkowita) służy do przekazywania bieżącej ilości boczku do Postępometru za pośrednictwem bloku tekstowego CurrentValue.
Aby skonfigurować funkcje konwersji Na tekst (liczba całkowita), utwórz powiązania widoku i powiąż wartości ustawione w widżecie z urządzeniem Postępometru.
Otwórz Okno > Powiązania widoku.
Wybierz blok tekstowy CurrentValue w widżecie i kliknij +Dodaj widżet w oknie Powiązania widoku.
W lewym polu powiązania widoku wybierz CurrentValue > Tekst. Oznacza to, że Tekst zostanie przekazany do właściwości Tekst bloku tekstowego CurrentValue.
W prawym polu kliknij pole i wybierz Funkcje konwersji > Na tekst (liczba całkowita). W powiązaniu dla bloku tekstowego CurrentValue pojawi się szereg pól.
Aby dowiedzieć się więcej na temat działania poszczególnych pól, zapoznaj się z sekcją Właściwości funkcji Na tekst (liczba całkowita / wartość podwójnej precyzji).
Spowoduje to uruchomienie funkcji konwersji o nazwie Na tekst (liczba całkowita), która przyjmuje wartość i zwraca zmienną typu Tekst w celu przekazania do właściwości Tekst bloku tekstowego CurrentValue.
Wybierz ikonę łańcucha obok pozycji Wartość, po czym wybierz kolejno MVVM_UEFN_Tracker > Wartość.
Zmienna Wartość z modelu widoku Postępometru jest przekazywana do funkcji konwersji Na tekst (liczba całkowita). Spowoduje to zwrócenie zmiennej Wartość jako właściwości Tekst, która jest następnie przekazywana do właściwości Tekst bloku tekstowego CurrentValue.
Efekt końcowy
Aby użyć nowego widżetu, przeciągnij urządzenie Postępometru do projektu, a następnie wykonaj poniższe czynności:
W panelu szczegółów urządzenia Postępometru ustaw w polu widżetu HUD swój Track_Widget.
Postępometru można używać do monitorowania statystyk wyników. Do przetestowania tej funkcjonalności można wykorzystać przedmioty do zebrania w swoim poziomie.
Za każdym razem, gdy gracz zbierze boczek w trakcie gry, Postępometr automatycznie zwiększy wartość o wartość punktową zdefiniowaną dla każdego kawałka boczku.
Na tekst (wartość podwójnej precyzji)
W tym przykładzie użyj przepływu pracy Wariant modalnego okna dialogowego z dokumentu Wyskakujące okna UI, aby utworzyć niestandardowy widżet wyskakującego okna dialogowego o nazwie Trivia_Widget. Trivia_Widget wyświetla pytania z Fortnite o ciekawostki, na które należy udzielić odpowiedzi przed upływem limitu czasu.
Konfiguracja widżetu
Kliknij prawym przyciskiem myszy w przeglądarce zawartości, aby wyświetlić menu kontekstowe.
Z menu kontekstowego wybierz Interfejs użytkownika > Blueprint widżetów > Wariant modalnego okna dialogowego.
Otwórz widżet i dodaj następujące kontenery do panelu Hierarchia, w kolejności pokazanej na ilustracji:
Nakładka
Obraz
3 x pole stosu
Nakładka przechowuje cały widżet jako kontener nadrzędny. Następnie użyj widżetu Obraz jako tła, a na końcu wykorzystaj zagnieżdżone pola stosu do umieszczenia całej zawartości, takiej jak teksty i przyciski.
Dodaj bloki tekstowe i przyciski do pól stosu, jak pokazano poniżej.
Dopasuj bloki tekstowe TimeLeft i TimeFlavorText w polu stosu tak, aby wartość TimeLeft była dynamicznie aktualizowana poprzez powiązanie widoku zgodnie ze zmienną Czas pozostały do upływu limitu czasu w modelu widoku wyskakującego okna dialogowego.
Dodaj przyciski jako siatkę 2x2. Przyciski są umieszczane na siatce 2x2, więc zamiast pola stosu użyj panelu siatki jednolitej. Kliknij prawym przyciskiem myszy Container_Buttons > Zastąp przy użyciu… > Panel siatki jednolitej.
Panel siatki jednolitej umożliwia łatwe porządkowanie widżetów podrzędnych we wzór siatki. Możesz też z łatwością ustawić odstęp wewnętrzny slotów dla każdego elementu podrzędnego.
Wybierz każdy przycisk z osobna w sekcji Hierarchia, aby podświetlić przycisk w widoku głównym projektanta.
W widoku głównym projektanta kliknij strzałki otaczające przycisk, aby przenieść przycisk do określonego wiersza lub kolumny, aż znajdzie się w odpowiednim miejscu.
W poniższym przykładzie przyciski są ułożone w układzie od lewej do prawej i od góry do dołu. Nazwa przycisków została zmieniona na Button1, Button2, Button3 i Button4.
W panelu szczegółów ustaw w opcji Układ podrzędny > Odstęp wewnętrzny slotów dla Container_Buttons wartość 16 pikseli.
Dostosuj tę wartość dowolnie tak, aby była zgodna z twoim projektem.
W polu stosu Zawartość dodaj cichy przycisk, który będzie używany później jako przycisk zamykający.
Między kontenerami dodaj odstępy, aby zawartość była bardziej czytelna. Możesz to zrobić, dodając widżet Obraz w miejscu, w którym mają się znajdować odstępy, a następnie konfigurując poniższe opcje w panelu Szczegóły:
Pędzel > Rysuj jako = Brak
Rozmiar obrazu (wartości X i Y) = 35 (może być mniej więcej w zależności od projektu).
Jest to prosty sposób na oddzielenie elementów UI odstępami bez konieczności stosowania odstępu wewnętrznego.
Zmodyfikuj tekst przycisku, aby z łatwością zidentyfikować każdy przycisk.
Otwórz foldery Fortnite > UI i utwórz instancję materiału M_UI_Rectangle, aby utworzyć materiał tła dla wyskakujących ciekawostek.
W UMG otwórz widżet użytkownika i wybierz widżet Obraz tła, a następnie w polu Pędzel > Obraz wybierz utworzoną przed chwilą instancję materiału.
Dodaj 32 piksele odstępu wewnętrznego w polu stosu zawartości, aby wyskakujące okienko było bardziej czytelne.
Konfiguracja funkcji konwersji
W tej dokumentacji nie omówiono powiązania przycisków z odpowiedziami. Ten samouczek dotyczy powiązania tekstu TimeLeft ze zmienną Wartość zmiennoprzecinkowa (float) czasu pozostałego do upływu limitu czasu.
Otwórz Okno > Powiązania widoku.
W panelu Hierarchia wybierz widżet bloku tekstowego TimeLeft. W oknie Powiązania widoku kliknij +Dodaj widżet.
W polu z lewej strony wybierz TimeLeft > Tekst. Spowoduje to przekazanie pewnej formy wartości do właściwości Text funkcji TimeLeft.
W polu z prawej strony wybierz CreativeModalDialogViewmodel > Czas pozostały do upływu limitu czasu. Następnie wybierz Funkcje konwersji > Na tekst (wartość podwójnej precyzji).
Najechanie kursorem na zmienną pokazuje, że ta wartość jest wartością pojedynczej precyzji (float). Funkcja konwersji Na tekst (wartość podwójnej precyzji) umożliwia przekonwertowanie wartości podwójnej/zmiennopozycyjnej na zmienną Tekst i wyświetlenie jej w UI.
W oknie Powiązania widoku pojawi się szereg pól.
Aby uzyskać więcej informacji na temat tych pól, patrz sekcja Właściwości funkcji Na tekst (liczba całkowita / wartość podwójnej precyzji) w dokumencie.
Kliknij ikonę łańcucha obok pozycji Wartość i wybierz CreativeModalDialogViewmodel > Czas pozostały do upływu limitu czasu > Wybierz.
Zmienna Czas pozostały do upływu limitu czasu jest przekazywana do funkcji konwersji Na tekst (wartość podwójnej precyzji), która zwraca wartość zmiennopozycyjną (float) w formacie tekstowym czytelnym dla twojego UI. UI precyzyjnie wyświetla czas pozostały do zamknięcia widżetu wyskakującego okna dialogowego.
Efekt końcowy
Przeciągnij urządzenie okna dialogowego do projektu i wykonaj następujące czynności:
W urządzeniu okna dialogowego ustaw w opcji Klasa zastąpienia szablonu utworzony Trivia_Widget.
Zaznacz opcję Użyj limitu czasu okna dialogowego.
Ustaw limit czasu oczekiwania na 6 sekund lub inny czas, który twoim zdaniem będzie wystarczający na dostrzeżenie okna przez graczy i przeczytanie jego zawartości.
Teraz, gdy pojawia się widżet wyskakującego okna dialogowego, w wyskakującym oknie widać licznik czasu, na którym wartość czasu spada z każdą sekundą.
Właściwości funkcji Na tekst (liczba całkowita / wartość podwójnej precyzji)
W funkcji konwersji Na tekst (liczba całkowita) dostępnych jest wiele pól. O ile nie zdefiniowano inaczej, funkcja Na tekst (wartość podwójnej precyzji) zawiera te same pola:
Wartość – zmienna typu Liczba całkowita (int) przekazywana do funkcji konwersji.
Zawsze znak – dodaje znak dodatni lub ujemny do przedrostka dla zwracanego tekstu wskazujący, czy wartość jest wartością dodatnią czy ujemną. Jeśli wartość jest dodatnia, zwracany tekst ma postać +{Value}. Jeśli jest ona ujemna, zwracany tekst ma postać -{Value}.
Użyj grupowania – określa, czy wartości są grupowane razem, ale rozdzielane, gdy wartość przekracza 1000. Opcja ta wykorzystuje ustawienia regionalne komputera do określania wskaźnika grupowania. Jeśli jest włączona, zwraca tekst w postaci 1,000. Jeśli jest wyłączona, tekst zwracany jest w postaci 1000.
Minimalna liczba cyfr całkowitych – minimalna liczba cyfr liczb całkowitych, jaką ma zawierać tekst. Domyślną wartością jest 1. Jeśli ustawisz wartość minimalną większą niż 1, liczby całkowite składające się z liczby cyfr mniejszej od minimalnej liczby cyfr dla liczb całkowitych będą wyświetlane z zerami. Jeśli na przykład minimalna liczba cyfr całkowitych zostanie ustawiona na 3, a bieżąca wartość wynosi 5, wówczas zwrócony zostanie tekst 005.
Maksymalna liczba cyfr całkowitych – maksymalna liczba cyfr liczb całkowitych, jaką ma zawierać tekst. Domyślną wartością jest 354. Ustawienie to ogranicza tekst do wyświetlania jedynie maksymalnej liczby cyfr.
Minimalna liczba cyfr ułamkowych (tylko w przypadku funkcji Na tekst (wartość podwójnej precyzji)) – minimalna liczba cyfr po separatorze dziesiętnym. Domyślną wartością jest 0.
Maksymalna liczba cyfr ułamkowych (tylko w przypadku funkcji Na tekst (wartość podwójnej precyzji)) – maksymalna liczba cyfr po separatorze dziesiętnym. Domyślną wartością jest 3.
Tryb zaokrąglania (tylko w przypadku funkcji Na tekst (wartość podwójnej precyzji)) – określa sposób zaokrąglania wartości pojedynczej lub podwójnej precyzji w górę do najbliższej liczby.
| Typ | Opis | Przykład |
|---|---|---|
Połowa do parzystej | Zaokrągla do najbliższego miejsca, równoodległe wyniki przechodzą do wartości, która jest najbliższa wartości parzystej | 1.5 staje się 2, 0.5 staje się 0 |
Połowa od zera | Zaokrągla do najbliższego miejsca, równoodległe wyniki przechodzą do wartości, która jest bardziej oddalona od zera | -0.5 staje się -1.0, 0.5 staje się 1.0 |
Połowa do zera | Zaokrągla do najbliższego miejsca, równoodległe wyniki przechodzą do wartości, która jest bliższa zera | -0.5 staje się 0, 0.5 staje się 0. |
Od zera | Zaokrągla do wartości bardziej oddalonej od zera, "większej" w wartości bezwzględnej | 0.1 staje się 1, -0.1 staje się -1 |
Do zera | Zaokrągla do wartości bliższej zeru, “mniejszej” w wartości bezwzględnej | 0.1 staje się 0, -0.1 staje się 0 |
Do ujemnej nieskończoności | Zaokrągla do wartości, która jest bardziej ujemna | 0.1 staje się 0, -0.1 staje się -1 |
Do dodatniej nieskończoności | Zaokrągla do wartości, która jest bardziej dodatnia | 0.1 staje się 1, -0.1 staje się 0 |