ModuleScript
ModuleScript : LuaSourceContainer
Overview
ModuleScript๋ ๊ณตํต๋ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ๊ตฌ์กฐํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์คํฌ๋ฆฝํธ ์ธ์คํด์ค์ ๋๋ค.
require() ํจ์๋ก ๋ถ๋ฌ์ฌ ์ ์์ผ๋ฉฐ, ํธ์ถ ์ ํ๋์ ๊ฐ์ ๋ฐํํฉ๋๋ค. ์ฆ, ๋์ผํ ์คํ ํ๊ฒฝ์์ ์ฌ๋ฌ ์คํฌ๋ฆฝํธ๊ฐ ๊ฐ์ ModuleScript๋ฅผ require()ํ๋๋ผ๋ ๋ชจ๋์ ํ ๋ฒ๋ง ์คํ๋๋ฉฐ, ์ดํ ํธ์ถ์์๋ ์ฒ์ ๋ฐํ๋ ๊ฐ์ ๊ทธ๋๋ก ๊ณต์ ํฉ๋๋ค. ์ด์ฒ๋ผ ์ค๋ณต์ ์ค์ด๊ณ ๊ธฐ๋ฅ์ ํ ๊ณณ์ ์ ์ํด ์ฌ๋ฌ ์์น์์ ํ์ฉํ ์ ์์ด, ์ ์ง๋ณด์์ ์ฌ์ฌ์ฉ์ฑ์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.
์๋ฒ์ ํด๋ผ์ด์ธํธ์ฒ๋ผ ์๋ก ๋ค๋ฅธ ์คํ ํ๊ฒฝ์์๋ ModuleScript๊ฐ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋ฒ์์ ์ด๋ฏธ ์คํ๋ ModuleScript์ฌ๋ ํด๋ผ์ด์ธํธ์์ require()๋ฅผ ํธ์ถํ๋ฉด ๋ณ๋๋ก ๋ค์ ์คํ๋ฉ๋๋ค.
require() ํจ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํธ์ถ ์ ์คํ ํ๋ฆ์ ๋ฉ์ถ์ง ์์ง๋ง, ๋ง์ฝ ModuleScript ๋ด๋ถ์์ wait() ๊ฐ์ ๋๊ธฐ ํจ์๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ, ํด๋น ModuleScript๊ฐ ๊ฐ์ ๋ฐํํ ๋๊น์ง ํธ์ถํ ์ค๋ ๋๊ฐ ๋๊ธฐํ๊ฒ ๋ฉ๋๋ค. ๋ํ, ModuleScript ๊ฐ์ ์๋ก๋ฅผ require()ํ๋ ์ํ ์ฐธ์กฐ๊ฐ ๋ฐ์ํ๋ฉด ์ค๋ ๋๊ฐ ๋ฉ์ถ๊ณ ์งํ๋์ง ์์ผ๋ฏ๋ก, ๋๊ท๋ชจ ํ๋ก์ ํธ์์๋ ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ์ฒ ์ ํ ํด์ผ ํฉ๋๋ค.
๋ชจ๋ ์คํฌ๋ฆฝํธ๋ ํ ์ด๋ธ์ ์์ฑ๊ณผ ํจ์๋ฅผ ์ ์ํ ๋ค, ์ด๋ฅผ ๋ฐํํ์ฌ ์ธ๋ถ ์คํฌ๋ฆฝํธ์์ ์ฐธ์กฐํ ์ ์๋๋ก ํ ์ ์์ต๋๋ค.
local UtilityModule = {}
UtilityModule.IsShowMessage = true
-- ํจ์๋ฅผ :๋ก ์ ์ํ๋ฉด ํจ์ ๋ด๋ถ์์ self๋ก ํด๋น ํ
์ด๋ธ์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
function UtilityModule:PrintMessage(message)
if not self.IsShowMessage then
return
end
print("PrintMessage : " .. message)
end
return UtilityModule
์ธ๋ถ ์คํฌ๋ฆฝํธ์์ require ํจ์๋ฅผ ํตํด ๋ชจ๋ ์คํฌ๋ฆฝํธ์์ ๋ฐํํ ํ ์ด๋ธ์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ํด๋น ํ ์ด๋ธ์ ์ ์๋ ์์ฑ๊ณผ ํจ์์ ์ ๊ทผํ ์ ์์ต๋๋ค.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local UtilityModule = require(ReplicatedStorage:WaitForChild("UtilityModule"))
UtilityModule:PrintMessage("Hello!")
UtilityModule.IsShowMessage = false
UtilityModule:PrintMessage("Hello!")
Properties
Methods
Events
See also
๋ชจ๋ ์คํฌ๋ฆฝํธLast updated