53 lines
1.1 KiB
Lua
53 lines
1.1 KiB
Lua
--------------------------------------------------------------------------------
|
|
-- Copyright (c) 2015 - 2016 , 蒙占志(topameng) topameng@gmail.com
|
|
-- All rights reserved.
|
|
-- Use, modification and distribution are subject to the "MIT License"
|
|
--------------------------------------------------------------------------------
|
|
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 setmetatable({value = value or 0}, LayerMask)
|
|
end
|
|
|
|
function LayerMask.New(value)
|
|
return setmetatable({value = value or 0}, LayerMask)
|
|
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 ~= nil then
|
|
value = value + 2 ^ n
|
|
end
|
|
end
|
|
|
|
return value
|
|
end
|
|
|
|
UnityEngine.LayerMask = LayerMask
|
|
setmetatable(LayerMask, LayerMask)
|
|
return LayerMask
|
|
|
|
|
|
|