XUiFubenExploreLevelNode = XClass(nil, "XUiFubenExploreLevelNode") function XUiFubenExploreLevelNode:Ctor(ui, nodeInfo, rootUi, cb) self.GameObject = ui.gameObject self.Transform = ui.transform self.RootUi = rootUi self.NodeInfo = nodeInfo self.ShowDetail = false local behaviour = self.Transform.gameObject:AddComponent(typeof(CS.XLuaBehaviour)) if self.Update then behaviour.LuaUpdate = function() self:Update() end end self.ShowDetailMinScale = CS.XGame.ClientConfig:GetFloat("ExploreShowDetailMinScale") self.DetailFadeTime = CS.XGame.ClientConfig:GetFloat("ExploreDetailFadeTime") self.Cb = cb XTool.InitUiObject(self) self.BtnNode.CallBack = function() self:OnBtnNodeClick() end self:UpdateNode() end function XUiFubenExploreLevelNode:OnBtnNodeClick() self.Cb(self.NodeInfo) end function XUiFubenExploreLevelNode:UpdateNode(nodeInfo) if nodeInfo ~= nil then self.NodeInfo = nodeInfo end --初始默认值 self.ImgKeyNode.gameObject:SetActive(false) self.PanelStrory.gameObject:SetActive(false) self.RImgNodeIco.gameObject:SetActive(false) self.PanelComplete.gameObject:SetActive(false) self.PanelLock.gameObject:SetActive(false) self.PanelReward.gameObject:SetActive(false) self.PanelSelect.gameObject:SetActive(false) --关键关卡(右上角标识) if self.NodeInfo.tableData.IsKeyNode then self.ImgKeyNode.gameObject:SetActive(true) end --关卡类型 if self.NodeInfo.tableData.Type == XFubenExploreConfigs.NodeTypeEnum.Story then self.PanelStrory.gameObject:SetActive(true) elseif self.NodeInfo.tableData.Type == XFubenExploreConfigs.NodeTypeEnum.Battle then self.RImgNodeIco.gameObject:SetActive(true) end --状态 if self.NodeInfo.State == XFubenExploreConfigs.NodeStateEnum.Complete then self.PanelComplete.gameObject:SetActive(true) self.RImgNodeIco.gameObject:SetActive(true) elseif self.NodeInfo.State == XFubenExploreConfigs.NodeStateEnum.Visivle then self.PanelLock.gameObject:SetActive(true) self.RImgNodeIco.gameObject:SetActive(true) elseif self.NodeInfo.State == XFubenExploreConfigs.NodeStateEnum.Availavle then self.RImgNodeIco.gameObject:SetActive(true) self.PanelSelect.gameObject:SetActive(true) end --战利品 if self.NodeInfo.tableData.RewardId > 0 then self.PanelReward.gameObject:SetActive(true) self.RImgRewardIco:SetRawImage(self.NodeInfo.tableData.RewardIcon) end --背景图片 self.RImgNodeIco:SetRawImage(self.NodeInfo.tableData.Icon) --头像 self.RImgRole:SetRawImage(self.NodeInfo.tableData.CharacterIcon) --关卡名 self.TxtLevelID.text = self.NodeInfo.tableData.Name --时间 self.TxtLevelTime.text = self.NodeInfo.tableData.TimeDesc end function XUiFubenExploreLevelNode:Update() local curScale = self.RootUi.PanelDragArea.gameObject.transform.localScale.x if curScale > self.ShowDetailMinScale and not self.ShowDetail then self.ShowDetail = true if self.TweenFade ~= nil then self.TweenFade:Kill() end self.TweenFade = self.PanelHideCanvasGroup:DOFade(1, self.DetailFadeTime) elseif curScale < self.ShowDetailMinScale and self.ShowDetail then self.ShowDetail = false if self.TweenFade ~= nil then self.TweenFade:Kill() end self.TweenFade = self.PanelHideCanvasGroup:DOFade(0, self.DetailFadeTime) end end