Arrays können mit Schleifen kombiniert werden, wie while und for , um denselben Code für jeden indexierten Wert zu wiederholen.Zum Beispiel, jeden Spieler in einem Array an einen neuen Ort zu teleportieren oder ein Array von Teilen in initiierenzu setzen.
Um die Schleifung durch Arrays zu erkunden, erstelle einen verschwindenden Brückenpfad, in dem Teile in ein Array platziert werden und dann einzeln verschwinden lassen.
Schleife durch ein Array
Für das Projekt finden oder erstellen Sie eine Reihe von drei Teilen, um verschwinden zu lassen. Die Teile müssen alle angeankert sein.
Erstelle drei Teile. Benenne die Teile in der Reihenfolge, in der sie verschwinden sollen, Teil1, Teil2, Teil3.
Füge im ServerScriptService ein neues Skript ein und erstelle ein Array, um die Teile zu speichern.
local pathArray = {}Auf einer einzigen Linie jedes Mal geben Sie den Namen der Teile in der Reihenfolge ein, in der sie verschwinden sollen. Die Verwendung einer neuen Zeile für jeden Wert macht es einfacher zu gelesen.
local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}
Verwende eine for-Schleife mit einem Array
Verwende eine for-Schleife, um durch das Array zu gehen und zu kontrollieren, wie schnell die Teile in der Reihenfolge verschwinden sollen, in der sie im Array indexiert sind.
Um zu kontrollieren, wie oft ein Teil in Sekunden verschwindet, erstelle eine Variable mit dem Namen VANISH_RATE. Für Tests ist es am besten, sie auf eine kleine Anzahl zu beschränken.
local VANISH_RATE = 1.5local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3}Erstellen Sie eine for-Schleife mit dem gefolgte Profile: Start: partIndex = 1 , der Index des ersten Werts in der Liste. Ende: #pathArray , die Größe dieses Arrays.
for partIndex = 1, #pathArray doendEs gibt also eine Verzögerung, bevor ein Teil verschwindet, in der Schleife, füge ein task.wait() hinzu, das mit VANISH_RATE verwendet wird.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)endUm ein Teil verschwinden zu lassen, erstelle eine neue Variable mit dem Namen whichPart und stelle sie gleich partsArray[partIndex] .Dann, um diesen Teil verschwinden zu lassen, setze seine CanCollide Eigenschaft auf false und Transparency auf 1.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endÜberprüfe, ob Teile des Weges im Laufe der Zeit verschwinden.
Problemlösungstipps
Wenn die Brücke nicht verschwindet, überprüfe die möglichen Probleme unten: Problem: Teile verschwinden zu schnell oder sind am startenweg.
- Abhängig davon, wie schnell sich dein Charakter in das Erlebnis laden lässt, können die ersten Teile bereits unsichtbar sein.Um dies zu adressieren, füge eine kleine Wartezeit hinzu, wie task.wait(2) , am Beginn des Skript, das. PL: die Skripts.
Code die zweite Schleife
Im Moment verschwinden die Teile für immer.Um sie wieder erscheinen zu lassen, erstelle eine zweite Schleife, die jedes Teil durchläuft und jedes Stück sofort walkbar macht.
Nach der ersten Schleife füge ein task.wait() hinzu, um eine kurze Verzögerung zu erstellen, bevor der Weg wieder erscheint.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endtask.wait(1)Auf eigene Faust , versuche, eine zweite Schleife zu codieren, die den Weg wieder verwendbar macht, indem du jedes Teil mit der Eigenschaft CanCollide auf wahr und Transparenz auf 0 änderst.Wenn du fertig bist, überprüfe deine Arbeit gegen den Code unten.
-- Setze den Weg zurück, indem du alle Teile wieder begehbar machstfor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endTeste das Projekt, um zu bestätigen, dass sobald alle Teile verschwinden, sie Zurück.
Wiederholen mit einem While-Schleife
Die Teile verschwinden und wieder erscheinen, aber nur einmal. Um den Code immer wieder zu wiederholen, verschachteln Sie den gesamten Code innerhalb einer While-Schleife.
Am unteren Rand des Skripts erstellen Sie einen neuen While-True-Loop. Dann, bewegen Sie beide für Schleifen in den While-Loop.
while true do-- Lassen Sie ein Teil verschwinden aus dem Array in der Reihenfolgefor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Warte eine Sekunde, bevor du den Weg wieder erscheinen lässttask.wait(1)-- Setze den Weg zurück, indem du alle Teile wieder begehbar machstfor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endendÜberprüfe, dass sobald alle Teile verschwinden, sie wieder erscheinen.
Eine abgeschlossene Version des Projekts kann heruntergeladen werden.
Abgeschlossenes Skript, das. PL: die Skripts
local VANISH_RATE = 1.0local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}while true do-- Lassen Sie ein Teil verschwinden aus dem Array in der Reihenfolgefor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Warte eine Sekunde, bevor du den Weg wieder erscheinen lässttask.wait(1.0)-- Setze den Weg zurück, indem du alle Teile wieder begehbar machstfor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endend
Arrays und ipairs()
ipairs() wird mit Arrays verwendet.Das "i" in ipairs() steht für "Index". ipairs() kann verwendet werden, um eine Operation schnell auf vielen Objekten wiederzuholen, wie zum Beispiel einen Ordner voller Teile.
Dies wird durch das Schnellhinzufügen von Partikeln zu einem ganzen Ordner von Teilen demonstriert.
Erstelle im Arbeitsbereich einen Ordner mit dem Namen PartsFolder. Füge so viele Teile hinzu, wie du möchtest.
Im ServerScriptService erstellen Sie ein neues Skript und verweisen auf den Ordner.
Verwende GetChildren() um automatisch eine Liste aller Objekte im Ordner zu erhalten.
local partsFolder = workspace.PartsFolder-- Hält eine Liste von Arrays, die die Teile in PartsFolder enthaltenlocal partsArray = partsFolder:GetChildren()Verwende in ipairs(ArrayToUse) mit der for-Schleife, um durch partsArray zu gehen und Partikel hinzuzufügen.
Abgeschlossenes Skript, das. PL: die Skripts-- Hält eine Liste von Arrays, die die Teile in PartsFolder enthaltenlocal partsArray = partsFolder:GetChildren()-- Fügt Partikel zu jedem Teil in der Arrayhinzufor index, part in ipairs(partsArray) dolocal particles = Instance.new("ParticleEmitter")particles.Parent = partend
Teste dein Spiel und beobachte, wie sich die Partikel aus jedem Teil des Ordners aufrichten.
Übersicht
Schleifen können mit Arrays kombiniert werden, um schnell mit einer beliebigen Anzahl von Werten zu arbeiten.Wenn du genaue Kontrolle über das, was mit einigen Teilen passiert und in welcher Reihenfolge, haben möchtest, muss ein Array mit bestimmten Werten hart kodiert werden.
Um mit vielen Teilen zu arbeiten, bei denen die Reihenfolge nicht wichtig ist, kann GetChildren() eine Liste der Kinder eines Objekts erstellen.Mit der Verwendung von ipairs() kann die Liste schnell durchlaufen werden, ohne die Größe des Arrays zu kennen.