ModuleScript
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un ModuleScript è un tipo di script che restituisce esattamente un valore con una chiamata a require() .Esegui una volta e solo una volta per ambiente Luau e restituisci lo stesso valore esatto per le successive chiamate a .
ModuleScripts sono oggetti essenziali per aderire al principio "Non ripeterti" (DRY), consentendo di scrivere una funzione solo una volta e utilizzarla ovunque.Avere più copie di una funzione è problematico quando devi cambiare il loro comportamento, quindi dovresti definire funzioni o gruppi di funzioni in e avere la tua chiamata e su quei moduli.
È importante sapere che i valori di restituzione da ModuleScripts sono indipendenti rispetto a Scripts e LocalScripts , e altri ambienti come la barra di comando Command .L'utilizzo di require() su un ModuleScript in un LocalScript eseguirà il codice sul client, anche se un Script lo ha già fatto sul Server.Quindi, fai attenzione se stai usando un ModuleScript sul client e sul server allo stesso tempo, o debuggandolo all'interno di Studio.
Nota che la prima chiamata a require() non produrrà (fermerà) a meno che la ModuleScript non produca (chiami task.wait() per esempio), in tal caso il thread attuale che ha chiamato require() produrrà fino a quando il ModuleScript non restituirà un valore.Se un ModuleScript sta tentando di require() un altro ModuleScript che a sua volta cerca di require() esso, il thread si fermerà e non si fermerà mai **** (le chiamate cicliche require() generano errori).Tieni presente le dipendenze del tuo modulo in grandi progetti!
Se un ModuleScript viene caricato su Roblox e il modulo di radice ha il nome impostato su MainModule , può essere caricato come modello e richiesto utilizzando require() con l'ID risorsa del modello.Quindi può essere caricata nella tua esperienza, anche se questa logica funziona solo sul server e mostrerà un errore sul client.Se gli altri utenti vogliono utilizzare il modulo, deve essere pubblico.
Campioni di codice
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()
Sommario
Proprietà
Il codice da eseguire.
Metodi
Proprietà
Source
Il codice da eseguire.
Se vuoi leggere o modificare uno script che l'utente ha aperto, considera di utilizzare il ScriptEditorService per interagire con l'Editor di script invece.