Normalerweise können Funktionen nur die Informationen verwenden, die sie intern codiert haben. Manchmal wissen Sie jedoch im Voraus nicht, welche Informationen das sein werden, oder Sie möchten dieselbe Funktion mit mehreren ähnlichen Informationen wiederverwenden. Wenn Sie beispielsweise eine Funktion verwenden möchten, um den Namen der Person anzuzeigen, die einen Obby-Kurs am schnellsten abgeschlossen hat, in riesigen Buchstaben für alle. Sie werden den Namen des zukünftigen Gewinners nicht wissen, bis das Rennen beendet ist.
Parameter sind Platzhalter für Informationen, die Sie der Funktion später übergeben möchten. Sie sind wie Fenster, die es Ihnen ermöglichen, Informationen an die Funktion weiterzugeben.
Verwenden Sie Parameter und Ereignisse, um eine Falle einzurichten
Dieses Skript erstellt ein Fallen-Teil, das alles zerstört, was das Teil berührt, einschließlich anderer Teile. Sie müssen einen Parameter verwenden, um es einzurichten. Seien Sie vorsichtig, die Falle zu verankern, damit sie nicht fällt und unbeabsichtigt Dinge zerstört.
Erstellen Sie ein neues Teil
Ein Teil muss eingerichtet werden, das alles zerstört, was es berührt.
- Erstellen Sie ein neues Teil, das nichts berührt. Wenn es etwas berührt, könnte es zu früh aktiviert werden.
- Benennen Sie das Teil im Explorer um: TrapPart.
- Verankern Sie das Teil.
Richten Sie das Skript ein
Verwenden Sie, was Sie über Variablen und die Spielhierarchie wissen, um auf das Fallen-Teil zuzugreifen.
Fügen Sie ein neues Skript in das Fallen-Teil ein. Benennen Sie das Skript TrapScript um.
Löschen Sie "Hello World" und fügen Sie einen beschreibenden Kommentar hinzu.
Erstellen Sie unter dem Kommentar eine neue Variable, die das übergeordnete Element des Skripts findet.
-- Zerstört alles, was das übergeordnete Element berührtlocal trap = script.Parent
Erstellen Sie eine Funktion mit einem Parameter
Die Falle verwendet eine Funktion, um alles zu zerstören, was das Teil berührt. Damit die Funktion funktioniert, muss sie wissen, was das Teil berührt hat. Und das bedeutet, Parameter zu verwenden. Parameter werden innerhalb der () geschrieben, die nach dem Namen einer Funktion kommen. Sie sehen so aus:
local function functionName(parameterName)
endDie tatsächlichen Informationen, die durch den Parameter übergeben werden, werden als Argument bezeichnet. Sie erstellen eine neue Funktion namens onTouch(), mit einem Parameter namens objectTouched, der verfolgt, was auch immer die Falle berührt und dann das berührende Teil zerstört.
Erstellen Sie eine lokale Funktion. Sie kann beliebig benannt werden, aber in dieser Lektion verwenden wir onTouch.
local trap = script.Parentlocal function onTouch()endGeben Sie in den () einen Namen für den Parameter ein. In dieser Lektion verwenden wir objectTouched.
local trap = script.Parentlocal function onTouch(objectTouched)endErstellen Sie zwischen local function onTouch() und end eine Print-Anweisung. Sie verwenden dies, um zu überprüfen, ob etwas das Teil in der nächsten Sektion berührt.
local trap = script.Parentlocal function onTouch(objectTouched)print("Etwas hat die Falle berührt")end
Verwenden Sie ein Ereignis, um die Funktion aufzurufen
Wir möchten, dass die Funktion ausgeführt wird, wann immer etwas das Teil berührt. Um das zu erreichen, verbinden Sie die Funktion mit dem Touched-Ereignis. Ereignisse sind Dinge, die im Spiel passieren. Wie ein Spieler, der ein Teil berührt oder Gesundheit verliert. Wenn eine Funktion mit einem Ereignis verbunden ist, wird die Funktion jedes Mal ausgeführt, wenn das Ereignis eintritt.
Das Touched-Ereignis wird ausgelöst, wann immer ein Teil ein anderes Teil berührt und kann verwendet werden, um Schaltflächen, Fallen und andere Objekte zu erstellen, mit denen Spieler interagieren.
Geben Sie unter dem end der Funktion ein: trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Etwas hat die Falle berührt")end-- Verbinden Sie die Funktion mit dem Touched-Ereignistrap.Touched:Connect(onTouch)Klicken Sie auf Test und berühren Sie dann das Teil. Überprüfen Sie Ihre Test-Print-Anweisung: Etwas hat die Falle berührt. Wenn Sie die Zeichenfolge im Ausgabefenster nicht sehen können, überprüfen Sie Folgendes:
- Stellen Sie sicher, dass die Zeichenfolge "Etwas hat das Teil berührt!" zwischen local function onTouch() und end steht.
- Überprüfen Sie, ob Touched großgeschrieben ist.
Jetzt, da die Funktion korrekt eingerichtet ist, verwenden Sie sie, um alles zu zerstören, was das Teil berührt. Geben Sie innerhalb der Funktion nach der Zeichenfolge objectTouched:Destroy() ein. Der vollständige Code sollte sein:
local trap = script.Parentlocal function onTouch(objectTouched)print("Etwas hat die Falle berührt")-- Zerstören Sie das berührende ObjektobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Testen Sie erneut und sehen Sie, was passiert, wenn das Teil berührt wird. Ihr Avatar sollte fehlende Füße oder Arme haben. Wenn das Teil den Kopf oder den Hals des Avatars berührt, könnte es sogar vollständig zerstört werden.
Zusammenfassung
Parameter werden verwendet, um Informationen, die normalerweise außerhalb des Geltungsbereichs liegen (wo eine Funktion sie nicht sehen kann), in eine Funktion zu übergeben. Währenddessen sind Ereignisse spezielle Signale, die im Spiel ausgelöst werden, wenn etwas Wichtiges passiert. Verschiedene Objekte haben unterschiedliche Ereignisse. Funktionen können mit Ereignissen verbunden werden, sodass sie jedes Mal aufgerufen werden, wenn das Ereignis ausgelöst wird. Dieses kleine Skript hat eine Funktion mit dem Touched-Ereignis der Falle verbunden und das, was die Falle berührt hat, über den Parameter übergeben.