Pętle i tablice

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Tablice można łączyć z pętlami, takimi jak while czy for, aby powtarzać ten sam kod dla każdej indeksowanej wartości. Na przykład, teleportując każdego gracza z tablicy do nowego miejsca lub sprawiając, że tablica części zapali się.

Aby zbadać, jak iterować przez tablice, stwórz znikający most, w którym części są umieszczane w tablicy i następnie znikają jedna po drugiej.

Iteracja przez tablicę

Do projektu znajdź lub stwórz zestaw trzech części, które mają zniknąć. Części muszą być wszystkie zakotwiczone.

  1. Stwórz trzy części. Nazwij części w kolejności, w jakiej mają zniknąć: Part1, Part2, Part3.

  2. W ServerScriptService wstaw nowy skrypt i stwórz tablicę do przechowywania części.


    local pathArray = {
    }
  3. W jednej linii wpisz nazwę części w kolejności, w jakiej mają zniknąć. Użycie nowej linii dla każdej wartości ułatwia odczyt.


    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3,
    }

Użyj pętli for z tablicą

Użyj pętli for, aby przejść przez tablicę i kontrolować, jak szybko części mają znikać w kolejności, w jakiej są indeksowane w tablicy.

  1. Aby kontrolować, jak często część znika w sekundach, stwórz zmienną o nazwie VANISH_RATE. Na potrzeby testowania najlepiej trzymać ją na małej wartości.


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. Stwórz pętlę for z następującymi parametrami: Start: partIndex = 1, indeks pierwszej wartości w tablicy. Koniec: #pathArray, rozmiar tej tablicy.


    for partIndex = 1, #pathArray do
    end
  3. Aby było opóźnienie przed zniknięciem części, w pętli dodaj task.wait() używając VANISH_RATE.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. Aby sprawić, że część zniknie, stwórz nową zmienną o nazwie whichPart i ustaw ją równą partsArray[partIndex]. Następnie, aby ta część zniknęła, ustaw jej właściwość CanCollide na false i Transparency na 1.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. Sprawdź, czy części ścieżki znikają w czasie.

Wskazówki dotyczące rozwiązywania problemów

Jeśli most nie znika, sprawdź poniższe możliwe problemy:

Problem: Części znikają zbyt szybko lub są wszystkie niewidoczne na początku.

  • W zależności od tego, jak szybko postać ładuje się do doświadczenia, pierwsze części mogą już być niewidoczne. Aby to naprawić, dodaj małe oczekiwanie, takie jak task.wait(2), na początku skryptu.

Zakoduj drugą pętlę

W tej chwili części znikają na zawsze. Aby sprawić, że znowu się pojawią, stwórz drugą pętlę for, która przejdzie przez każdą część i natychmiast sprawi, że każda będzie przechodnia.

  1. Po pierwszej pętli dodaj task.wait(), aby stworzyć krótkie opóźnienie przed ponownym pojawieniem się ścieżki.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    task.wait(1)
  2. Na własną rękę, spróbuj zakodować drugą pętlę for, która sprawi, że ścieżka znów będzie użyteczna, zmieniając właściwość CanCollide każdej części na true i Transparency na 0. Po zakończeniu sprawdź swoją pracę w porównaniu z poniższym kodem.


    -- Resetuj ścieżkę, czyniąc wszystkie części znów przechodnie
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. Przetestuj projekt, aby potwierdzić, że po zniknięciu wszystkich części, wracają.

Powtórz z pętlą while

Części znikają i ponownie się pojawiają, ale tylko raz. Aby kod ciągle się powtarzał, zagniezdź cały kod wewnątrz pętli while.

  1. Na końcu skryptu stwórz nową pętlę while true do. Następnie przenieś obie pętle for do pętli while.


    while true do
    -- Spraw, aby część zniknęła z tablicy w kolejności
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- Poczekaj sekundę, zanim sprawisz, że ścieżka się pojawi
    task.wait(1)
    -- Resetuj ścieżkę, czyniąc wszystkie części znów przechodnie
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. Sprawdź, czy po zniknięciu wszystkich części, pojawiają się z powrotem.

Gotową wersję projektu można pobrać.

Zakończony skrypt

local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- Spraw, aby część zniknęła z tablicy w kolejności
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- Poczekaj sekundę, zanim sprawisz, że ścieżka się pojawi
task.wait(1.0)
-- Resetuj ścieżkę, czyniąc wszystkie części znów przechodnie
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

Tablice i ipairs()

ipairs() jest używane z tablicami. "i" w ipairs() oznacza "indeks". ipairs() można użyć do szybkiego powtarzania operacji na wielu obiektach, na przykład na folderze pełnym części.

To będzie demonstrowane przez szybkie dodanie cząsteczek do całego folderu części.

  1. W Workspace stwórz folder o nazwie PartsFolder. Dodaj tyle części, ile chcesz.

  2. W ServerScriptService stwórz nowy skrypt i odwołaj się do folderu.

  3. Użyj GetChildren(), aby automatycznie uzyskać tablicę z listą wszystkich obiektów w folderze.


    local partsFolder = workspace.PartsFolder
    -- Uzyskuje tablicę z listą części w PartsFolder
    local partsArray = partsFolder:GetChildren()
  4. Użyj in ipairs(ArrayToUse) z pętlą for, aby przejść przez partsArray i dodać cząsteczki.

    Zakończony skrypt

    -- Uzyskuje tablicę z listą części w PartsFolder
    local partsArray = partsFolder:GetChildren()
    -- Dodaje cząsteczki do każdej części w tablicy
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

Testuj i obserwuj, jak cząsteczki unoszą się z każdej części w folderze.

Podsumowanie

Pętle można łączyć z tablicami, aby szybko pracować z dowolną liczbą wartości. Jeśli chcesz mieć dokładną kontrolę nad tym, co się dzieje z kilkoma częściami i w jakiej kolejności, tablica musi być wprowadzona ręcznie ze specyficznymi wartościami.

Aby pracować z wieloma częściami, gdzie kolejność nie ma znaczenia, GetChildren() może stworzyć tablicę dzieci obiektu. Wykorzystując ipairs(), można szybko iterować po liście, nie znając rozmiaru tablicy.

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.