Arrays können mit Loops kombiniert werden, wie z. B. while und for , um den gleichen Code für jeden indizierten Wert wiederzuholen. Zum Beispiel das Teleportieren eines jeden Spielers in ein neues Ort oder das Erstellen eines Teams, das initiierenfangen.
Um das Looping durch Arrays zu erkunden, erstellen Sie einen verschwindenden Bridge-Weg, bei dem Teile in ein Array platziert werden und dann einzeln verschwinden.
Looping durch ein Array
Für das Projekt finden oder erstellen Sie ein Set von drei Teilen, um es zu verschwinden. Die Teile müssen alle verankert sein.
Erstellen Sie drei Teile. Benennen Sie die Teile in der Reihenfolge, in der sie verschwinden sollen, Teil 1, Teil 2, Teil 3.
In ServerScriptService fügen Sie ein neues Skript ein und erstellen Sie ein Array, um die Teile zu speichern.
local pathArray = {}Auf einer einzelnen Zeile jedes, geben Sie den Namen der Teile in der Reihenfolge ein, in der sie verschwinden sollen. Mit einer neuen Zeile für jeden Wert macht es einfacher zu gelesen.
local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}
Verwendung eines for Loop Mit einem Array
Verwenden Sie ein for Loop, um durch die Matrix zu gehen und zu kontrollieren, wie schnell die Teile in der Reihenfolge erscheinen, in der die Teile in der Arrayindexiert sind.
Um zu kontrollieren, wie oft ein Teil in Sekunden verschwindet, erstellen Sie eine Variable namens VANISH_RATE . Für das Testen ist es am besten, sie auf eine kleine Zahl zu halten.
local VANISH_RATE = 1.5local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3}Erstellen Sie eine for-Loop mit dem gefolgte Profile: Start: partIndex = 1 , die Index des ersten Werte in der Matrix. End: 1> #pathArray1> , die Größe dieser Matrix.
for partIndex = 1, #pathArray doendSo gibt es eine Verzögerung, bevor ein Teil verschwindet, im Loop, füge einen task.wait() hinzu, verwendendo VANISH_RATE.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)endUm ein Teil verschwinden zu lassen, erstellen Sie eine neue Variable mit dem Namen whichPart und setzen Sie sie auf partsArray[partIndex] . Dann, um dieses Teil zu verschwinden, setzen Sie seine CanCollide auf false und seine 1> Transparenz1> auf 1.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endÜberprüfen Sie, ob Teile des Pfades im Laufe der Zeit verschwinden.
Troubleshooting-Tipps
Wenn die Brücke nicht verschwindet, überprüfen Sie die möglichen Probleme unten: Problem:: Teile verschwinden zu schnell oder sind zu startenweg.
- Abhängig von der Geschwindigkeit, mit der dein Charakter in die Erlebnislädt, können die ersten Teile bereits unsichtbar sein. Um dies zu beheben, füge einen kleinen Warte hinzu, z. B. task.wait(2) , am Beginn des Skript, das. PL: die Skripts.
Codierung der zweiten Schleife
Derzeit verschwinden die Teile für immer. Um sie wieder zu erscheinen, erstellen Sie eine Sekunde für Loop, die durch jedes Teil geht und sofort jedes Stück zu gehen macht.
Nach der ersten Schleife fügen Sie 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 deinem eigenen. , versuche, ein zweites Mal zu codieren, das den Weg wieder verwendbar macht, indem die Eigenschaft Collisions jedes Teils auf " true " und Transparency auf 0 gesetzt wird. Wenn Sie fertig sind, überprüfen Sie Ihre Arbeit gegen den Code unten.
-- Reset the path by making all parts walkable againfor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endTesten Sie das Projekt, um zu bestätigen, dass alle Teile verschwinden, wenn sie Zurück.
Wiederholen mit einem While Loop
Die Teile verschwinden und wieder erscheinen, aber nur einmal. Um den Code wiederholt zu machen, verschachteln Sie den gesamten Code in einer Zeit-Schleife.
Am unteren Rand des Skripts erstellen Sie einen neuen while true do loop. Dann, bewegen Sie beide für Loop in die while Loop.
while true do-- Löschen Sie einen Teil aus der Matrix, umfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Warte, bis eine Sekunde, bevor du den Pfad erneut erscheinen lässttask.wait(1)-- Reset the path by making all parts walkable againfor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endendÜberprüfen Sie, dass alle Teile verschwinden, und sie wieder erscheinen.
Eine fertige 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-- Löschen Sie einen Teil aus der Matrix, umfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Warte, bis eine Sekunde, bevor du den Pfad erneut erscheinen lässttask.wait(1.0)-- Reset the path by making all parts walkable againfor 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 auf einer Menge Objekte, wie z. B. ein Ordner voller Teile, schnell wiederzuholen.
Dies wird durch das Schnell-Hinzufügen von Partikeln zu einem ganzen Ordner von Teilen gezeigt.
In Arbeitsbereicherstellen Sie einen Ordner namens PartsFolder. Fügen Sie so viele Teile hinzu, wie Sie möchten.
In ServerScriptService erstellen Sie ein neues Skript und verweisen auf den Ordner.
Verwenden Sie GetChildren() , um automatisch eine Liste von Objekten im Ordner zu erhalten.
local partsFolder = workspace.PartsFolder-- Bietet eine Liste der Teile in PartsFolderlocal partsArray = partsFolder:GetChildren()Verwenden Sie in ipairs(ArrayToUse) mit dem for-Loop, um Teile Array durchzugehen und Partikel hinzuzufügen.
Abgeschlossenes Skript, das. PL: die Skripts-- Bietet eine Liste der Teile in PartsFolderlocal partsArray = partsFolder:GetChildren()-- Fügt jedem Teil in der ArrayPartikel hinzufor index, part in ipairs(partsArray) dolocal particles = Instance.new("ParticleEmitter")particles.Parent = partend
Testen Sie das Spiel und beobachten Sie, wie die Partikel aus jedem Teil des Ordners schweben.
Zusammenfassung
Loopings können mit Arrays kombiniert werden, um mit einer beliebigen Anzahl von Werten schnell zu arbeiten. Wenn Sie genaue Kontrolle über einige Teile und in welcher Reihenfolge sie passieren, muss ein Array mit bestimmten Werten hart codiert sein.
Um mit vielen Teilen zu arbeiten, in denen die Reihenfolge nicht wichtig ist, kann GetChildren() ein Array von Kindern eines Objekts erstellen. Mit der Verwendung von ipairs() kann die Liste schnell durchgerarbeitet werden, ohne die Größe des Arrays zu kennen.