源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

96 lines
2.6 KiB

--需要处理 z值深度的ui对象
UIZDepth = UIZDepth or BaseClass(EventDispatcher)
local UIZDepth = UIZDepth
local rawget = rawget
local SetLocalPositionZ = SetLocalPositionZ
--每一步的深度值
UIZDepth.STEP_VALUE = 1000
--界面模型的深度值
UIZDepth.MODEL_Z_VALUE = -UIZDepth.STEP_VALUE + 300
--每个layer的起始值
UIZDepth.Start_ZDepth_list = {
["Scene"] = 0,
["Main"] = 0,
["UI"] = 1,
["Activity"] = 12,
["Top"] = 25,
["UpTop"] = 30,
}
--每个layer的当前层数
UIZDepth.curr_ZDepth_list = {
["Scene"] = UIZDepth.Start_ZDepth_list.Scene,
["Main"] = UIZDepth.Start_ZDepth_list.Main,
["UI"] = UIZDepth.Start_ZDepth_list.UI,
["Activity"] = UIZDepth.Start_ZDepth_list.Activity,
["Top"] = UIZDepth.Start_ZDepth_list.Top,
["UpTop"] = UIZDepth.Start_ZDepth_list.UpTop,
}
function UIZDepth:__init()
self.layer_name = "Main"
self.zdepth_counter = 0
end
function UIZDepth:__delete()
UIZDepth.ResetUIZDepth(self)
end
function UIZDepth:DeleteCurrLayerZDepth(layer_name,count)
if UIZDepth.curr_ZDepth_list[layer_name] then
UIZDepth.curr_ZDepth_list[layer_name] = UIZDepth.curr_ZDepth_list[layer_name] - count
end
UIZDepth.SetUIZDepth(self)
end
function UIZDepth:GetCurrLayerZDepth(layer_name)
return UIZDepth.curr_ZDepth_list[layer_name]
end
--打开界面的时候 加UI z深度
function UIZDepth:AddUIZDepth()
if self.layer_name and self.layer_name ~= "Main" then
self.zdepth_counter = self.zdepth_counter + 1
if UIZDepth.curr_ZDepth_list[self.layer_name] then
UIZDepth.curr_ZDepth_list[self.layer_name] = UIZDepth.curr_ZDepth_list[self.layer_name] + 1
end
UIZDepth.SetUIZDepth(self)
return UIZDepth.curr_ZDepth_list[self.layer_name]
end
end
--真正设置ui的深度
function UIZDepth:SetUIZDepth()
local curr_count = UIZDepth.GetCurrLayerZDepth(self, self.layer_name)
if self.transform and curr_count > 0 then
local camare_depth = 500 -curr_count * UIZDepth.STEP_VALUE * 0.01
SetGlobalPositionZ(self.transform, camare_depth)
end
end
--ui控件要在模型上面显示
function UIZDepth:CoverMode(ui_transform)
if ui_transform then
SetLocalPositionZ(ui_transform, -UIZDepth.STEP_VALUE + 1)
end
end
--关闭界面的时候重置UI z深度
function UIZDepth:ResetUIZDepth(count)
if rawget(self, "layer_name") and self.layer_name ~= "Main" then
if count then
if count > 0 then
UIZDepth.DeleteCurrLayerZDepth(self, self.layer_name,count)
self.zdepth_counter = self.zdepth_counter - count
end
else
if self.zdepth_counter > 0 then
UIZDepth.DeleteCurrLayerZDepth(self, self.layer_name,self.zdepth_counter )
self.zdepth_counter = 0
end
end
end
end