module機能とは別のファイルに書かれたプログラムを呼び出して使用する事ができる機能です。
クラスのようにLuaスクリプトを機能ごとに切り出す事ができます。
-- math_custom に module の機能を格納する local math_custom = require "math_custom" local low = -5 local high = 1000 print(math_custom.clamp(low, 0, 300)) print(math_custom.clamp(high, 0, 300))
local module = {} -- この名前は何でも良い function module.clamp(value, min, max) if value < min then value = min; elseif value > max then value = max; end return value; end return module
0 300
-- module_1にmoduleの機能を格納する local module_1 = require "module_1" -- module_1の関数を呼び出す print(module_1.GetName()) print(module_1.GetVector())
-- 自分のファイル名を返す local function GetName() return "module_1" end -- Vector3.__new(0,100,0)を返す local function GetVector() return Vector3.__new(0,100,0) end -- VScodeのインテリセンス(入力予測)を使用するのに必要 return { GetName = GetName, GetVector = GetVector }
module_1 (0,100,0)
local module_2 = require "module_2" local test1 = module_2.new(50,1) local test2 = module_2.new(100,2) test1:pp() -- コロンを使うことで引数のselfを省略出来る、test1.pp(test1)と同じ意味 test2:pp()
local module_2 = {} -- この名前は何でも良い module_2.new = function(_x,_y) -- new functionで動的にテーブル生成して返す local obj = {} obj.x = _x obj.y = _y obj.pp = function(self) print(string.format("(%d,%d)", self.x, self.y)) end return obj end return module_2
local fish = require "fish_id" print(fish.chikuwa)
return { ebi = 1, chikuwa = 2, hanpen = 3 }
2