ModuleScript

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

A ModuleScript to typ skryptu, który zwraca dokładnie jedną wartość za pomocą wezwania require() .Wykonaj raz i tylko raz na środowisku Luau i zwróć dokładnie taką samą wartość dla kolejnych wezwań do ..

ModuleScripts są niezbędnymi obiektami do przestrzegania zasady "Nie powtarzaj siebie" (DRY), umożliwiając pisanie funkcji tylko raz i używanie jej wszędzie.Posiadanie wielu kopii funkcji jest problematyczne, gdy musisz zmienić ich zachowanie, więc powinieneś określić funkcje lub grupy funkcji w ModuleScripts i mieć swoje Scripts i LocalScripts wezwanie require() na tych modułach.

Ważne jest, aby wiedzieć, że wartości zwrotne z ModuleScripts są niezależne w odniesieniu do Scripts i LocalScripts oraz innych środowisk, takich jak pasek poleceń .Użycie require() na ModuleScript w LocalScript uruchomi kod na klientzie, nawet jeśli Script zrobił to już na serwerze.Dlatego uważaj, jeśli używasz ModuleScript na klientzie i serwerze jednocześnie lub debugujesz go w Studio.

Zauważ, że pierwsze wezwanie do require() nie wygeneruje (zatrzyma się), chyba że ModuleScript wygeneruje (wezwania task.wait() na przykład), w przeciwnym razie obecny wątek, który wezwał require(), będzie wykonywał do czasu, aż ModuleScript nie zwróci wartość.Jeśli próbuje inna próbuje inna, wątek będzie wisi i nigdy się nie zatrzyma (cykliczne wezwania nie generują błędów).Bądź świadomy zależności modułu w dużych projektach!

Jeśli ModuleScript zostanie przesłane do Roblox, a moduł korzeniowy ma ustawioną nazwę na MainModule, może zostać przesłane jako model i wymagane za pomocą require() z ID zasobu modelu.Następnie można ją załadować do swojego doświadczenia, choć ta logika działa tylko na serwerze i będzie błędna na klientzie.Jeśli inni użytkownicy chcą korzystać z modułu, musi on być publiczne.

Przykłady kodu

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.

Simple ModuleScript Example

-- 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.

Simple ModuleScript Usage

-- 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()

Właściwości

Source

Odczyt równoległy
Zabezpieczenia dodatku plug-in
Zabezpieczenia OpenCloud

Kod, który ma zostać wykonany.

Jeśli chcesz przeczytać lub zmodyfikować skrypt, który użytkownik ma otwarty, rozważ zamiast tego użycie ScriptEditorService do interakcji z edytorem skryptów.

Metody

Zdarzenia