Arrays i For loops w Blueprints

Zastosowanie Array pozwala na grupowanie zmiennych tego samego typu. Tworzenie tablicy w Blueprints jest bardzo proste. Utwórz nową zmienną i wybierz żądany typ. Obok typu zmiennej znajduje się ikona, którą należy kliknąć, aby zmienna stała się Array, jak na poniższym obrazku:

Aby zrozumieć użycie array, zaimplementujemy prosty Blueprint, który włącza i wyłącza zestaw lamp (światła punktowe), gdy gracz dotyka Blueprint. Utwórz nowy BP i nową zmienną o nazwie „Lampy”. Ta zmienna musi być tablicą typu „Światło punktowe”. Wybierz opcję „Edytowalne”, abyśmy mogli zdefiniować w Edytorze poziomów, które będą „Światła punktów”, które będą obsługiwane przez ten Plan. Zmienna „Lampy” wygląda następująco:

trybie Komponenty planu musisz dodać komponent „Box”, aby Blueprint mógł zidentyfikować kolizję z graczem.

Po dodaniu pola „Box” należy odznaczyć właściwość „Hidden in Game”, aby pojawiała się w trakcie gry. Utrzymajmy to w ten sposób, aby uprościć test.

Działania tego Blueprint zostaną wykonane, gdy wystąpi zdarzenie „Actor Begin Overlap”. Akcja „ForEachLoop” wykonuje akcję „Przełącz widoczność” dla każdego elementu tablicy „Lampy”:

Akcja „ ForEachLoop ” przyjmuje jako parametr wejściowy tablicę i wykonuje zestaw działań skojarzonych ze stykiem wyjściowym „Loop Body” dla każdego elementu tablicy, który można uzyskać z wyjściowego styku „Array Index”. Na przykład, jeśli tablica ma cztery elementy, akcje „Array Element” zostaną wykonane cztery razy. Następnie przepływ wykonania jest kierowany do styku wyjściowego „Zakończono”.

Aby przetestować ten plan, musimy dodać kilka „Point Light” na poziomie:

Umieść kilka „Point Lights” obok siebie. Dodaj nowy plan do poziomu w miejscu w pobliżu „świateł punktowych”. W zakładce „Details” Planu spójrz na zmienną „Lampy”. Czy można dodać elementy do tablicy klikając ikonę z symbolem „ + ”. Dla każdego dodanego elementu istnieje ComboBox, który zawiera listę „Point Lights”, które są częścią poziomu. Poniższy obrazek przedstawia mój przykład z wybranymi 4 punktami świateł.

Zauważ, że indeks tablicy zaczyna się od zera. Zatem tablica z 4 elementami zajmuje pozycje 0, 1, 2 i 3 tablicy. Światła punktowe, które są częścią tej Tablicy, będą włączane i wyłączane przez Akcję Planu. Aby przetestować, po prostu uruchom grę w edytorze i dotknij Schemat, używając aktora, aby aktywować wydarzenie „Aktor rozpoczyna nachodzenie”.

Array i „For Each Loop” mogą być używane razem z akcją „ Get All Actors of Class ”, aby manipulować wszystkimi aktorami określonej klasy / planu. Wyobraź sobie, że nasz Blueprint manipuluje wszystkimi światłami punktowymi poziomu, w tym przypadku nie byłoby potrzeby ręcznego określania świateł punktowych. Poniższy skrypt pokazuje, jak przełączać widoczność wszystkich świateł punktowych poziomu:

Akcja „Get All Actors of Class” zwraca tablicę typu „Actors” zawierającą odniesienia do wszystkich aktorów należących do klasy wybranej w opcji „Actor Class”. Tej tablicy można użyć w akcji „For Each Loop”, aby przejść przez wszystkie elementy tablicy. Aby uzyskać dostęp do działań klasy „Point Light”, musisz wykonać „Cast” każdego elementu tablicy. Zróbmy inny przykład, aby pokazać użycie innego typu „pętli For”. W tym przykładzie rysujemy liczbę żyć gracza jako ikony na ekranie, poniższy obrazek przedstawia gracza z 3 życiem.

Aby uczynić ten przykład, konieczne jest utworzenie schematu opartego na klasie HUD i zaimportowanie obrazu, który będzie używany do reprezentowania życia na ekranie. Użyjemy pętli „For Loop”, aby narysować obrazy na ekranie. Liczba rysunków obrazu jest równa liczbie żyć gracza reprezentowanej przez zmienną całkowitą „Lives”:


Źródło:https://romeroblueprints.blogspot.com/2014/10/arrays-and-for-loops-in-blueprints.html