|
|
local Layer = Layer
|
|
local rawget = rawget
|
|
local setmetatable = setmetatable
|
|
|
|
local LayerMask = {}
|
|
|
|
LayerMask.__index = function(t,k)
|
|
return rawget(LayerMask, k)
|
|
end
|
|
|
|
LayerMask.__call = function(t,v)
|
|
return LayerMask.New(v)
|
|
end
|
|
|
|
function LayerMask.New(value)
|
|
local layer = {value = value or 0}
|
|
setmetatable(layer, LayerMask)
|
|
return layer
|
|
end
|
|
|
|
function LayerMask:Get()
|
|
return self.value
|
|
end
|
|
|
|
function LayerMask.NameToLayer(name)
|
|
return Layer[name]
|
|
end
|
|
|
|
function LayerMask.GetMask(...)
|
|
local arg = {...}
|
|
local value = 0
|
|
|
|
for i = 1, #arg do
|
|
local n = LayerMask.NameToLayer(arg[i])
|
|
|
|
if n ~= 0 then
|
|
value = value + 2 ^ n
|
|
end
|
|
end
|
|
|
|
return value
|
|
end
|
|
|
|
UnityEngine.LayerMask = LayerMask
|
|
setmetatable(LayerMask, LayerMask)
|
|
return LayerMask
|
|
|
|
|
|
|