이미 Roblox에서도 ModuleScript라는 것이 있어서 이런 module이 익숙할 수 있을거 같아요.
module은 어떤 함수들을 미리 만들어 놓고, 불러서 사용할 수 있어요.
즉, module_name.lua 라는 파일에 table을 하나 만들어 return 합니다.
사용하는 쪽에서는 require 라는 명령어를 이용해서 불러서 사용합니다.
mymath.lua 파일
local mymath = {}
function mymath.add(a,b)
print(a+b)
end
function mymath.sub(a,b)
print(a-b)
end
function mymath.mul(a,b)
print(a*b)
end
function mymath.div(a,b)
print(a/b)
end
return mymath
이렇게 미리 함수를 정의 해 놓고, 그 함수들의 table인 mymath를 return 합니다.
사용하는 쪽에서는
mymathmodule = require("mymath")
mymathmodule.add(10,20)
mymathmodule.sub(30,20)
mymathmodule.mul(10,20)
mymathmodule.div(30,20)
이렇게 불러서 사용합니다.
Roblox에서는
보통 ServerStorage에 module script를 생성해서 불러 사용합니다.
module script를 생성하고, 처음엔 table 을 선언하고, return을 하게 만든다음 그 사이에 함수나 변수들을 정의하죠
local MoneyManager = {}
-- Usable only in the module script
local questReward = 100
-- Usable in other scripts
function MoneyManager.finishQuest(player)
player.Money = player.Money + questReward
end
return MoneyManager
그러면 다른 script에서
local MoneyManager = require(ServerStorage.ModuleScript)
이렇게 불러서 사용할 수 있지요.
뭔가를 만들때 같은 기능을 반복해서 만들면 나중에 수정할 때도 찾아서 모두 고쳐야 해서, 공통된 기능은 모두 한군데 모아두면 편하죠. 그리고 더 좋은건 남이 잘 만들어 논 module들을 가져다가 사용하는 것도 절대 나쁜 것이 아닙니다. 다른 사람이 만든 것들을 잘 보세요.
큰 도움이 된답니다.
'Lua' 카테고리의 다른 글
Lua#9 Table과 iterator (0) | 2020.08.25 |
---|---|
Lua#8 : Array (0) | 2020.08.20 |
Lua#7 : String (0) | 2020.08.20 |
Lua#6 : 함수 (0) | 2020.08.12 |
Lua#5 : 조건 (0) | 2020.08.11 |