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