ModuleScript
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Ein A ModuleScript ist ein Skripttyp, der genau einen Wert durch einen Anruf bei require() zurückgibt.Läuft einmal und nur einmal pro Luau-Umgebung und gibt den exakt gleichen Wert für nachfolgende Aufrufe zurück an .
ModuleScripts sind wesentliche Objekte, um sich dem Prinzip "Don't Repeat Yourself" (DRY) zuzuwenden und eine Funktion nur einmal zu schreiben und sie überall zu verwenden.Mehrere Kopien einer Funktion sind problematisch, wenn Sie deren Verhalten ändern müssen, also sollten Sie Funktionen oder Gruppen von Funktionen in ModuleScripts definieren und Ihre Scripts und LocalScripts Anrufe auf diesen Modulen haben require().
Es ist wichtig zu wissen, dass Rückgabewerte von ModuleScripts unabhängig sind in Bezug auf Scripts und LocalScripts und andere Umgebungen wie die Befehlsleiste.Das Verwenden von require() auf einem ModuleScript in einem LocalScript führt den Code auf dem Client aus, auch wenn ein Script dies bereits auf dem Server getan hat.Seien Sie daher vorsichtig, wenn Sie gleichzeitig auf dem Client und dem Server eine ModuleScript verwenden oder sie innerhalb von Studio debuggen.
Beachten Sie, dass die erste Anruf an require() nicht (halten) ergibt, es sei denn, der ModuleScript ergibt (Anrufe task.wait() zum Beispiel), in dem Fall wird der aktuelle Thread, der require() aufgerufen hat, bis der ModuleScript einen Wert zurückgibt.Wenn ein versucht, ein anderes zu sein, das wiederum versucht, es zu sein, wird der Thread hangen und nie stoppen (zyklische Anrufe erzeugen keine Fehler).Achten Sie auf Ihre Modulabhängigkeiten in großen Projekten!
Wenn ein ModuleScript auf Roblox hochgeladen wird und das Wurzelmodul den Namen auf MainModule festgelegt hat, kann es als Modell hochgeladen werden und mit der Modell-Asset-ID von require() erforderlich werden.Dann kann sie in deine Erlebnisgeladen werden, obwohl diese Logik nur auf dem Server funktioniert und beim Client zu Fehlern führt.Wenn andere Benutzer das Modul verwenden möchten, muss es öffentlich sein.
Code-Beispiele
The code sample starts by creating a local variable holding an empty table. It then fills the table with two placeholder functions, and then finally returns the table. Using this code in a ModuleScript would make the my_functions table (and thus any functions, tables or other values within it) available to any Script, LocalScript or other ModuleScript.
-- Tables store multiple values in one variable
local MyFunctions = {}
-- Add a few functions to the table
function MyFunctions.foo()
print("Foo!")
end
function MyFunctions.bar()
print("Bar!")
end
-- ModuleScripts must return exactly one value
return MyFunctions
This code sample shows how to use the require function on a ModuleScript, then use the value that it returned. See the "Simple ModuleScript Example" for the code to go with this sample.
-- The require function is provided a ModuleScript, then runs
-- the code, waiting until it returns a singular value.
local MyFunctions = require(script.Parent.MyFunctions)
-- These are some dummy functions defined in another code sample
MyFunctions.foo()
MyFunctions.bar()
Zusammenfassung
Eigenschaften
Der Code, der ausgeführt werden soll.
Eigenschaften
Source
Der Code, der ausgeführt werden soll.
Wenn Sie ein Skript lesen oder modifizieren möchten, das der Benutzer geöffnet hat, verwenden Sie stattdessen die ScriptEditorService, um mit dem Skript-Editor zu interagieren.