|
|
-
- --需要处理 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
|