RoleHeadShowItem = RoleHeadShowItem or BaseClass(BaseItem) function RoleHeadShowItem:__init() self.base_file = "newMainRole" self.layout_file = "RoleHeadShowItem" self.mainVo = RoleManager.Instance.mainRoleInfo self.model = NewMainRoleModel:getInstance() self.lock_state = false self:Load() end --清除界面 function RoleHeadShowItem:__delete() if self.event_id then GlobalEventSystem:UnBind(self.event_id) self.event_id = nil end if self.refresh_activate_id then self.model:UnBind(self.refresh_activate_id) self.refresh_activate_id = nil end end function RoleHeadShowItem:Load_callback() local node = { "head:raw","select:obj","lock:obj", "activatable:obj", "equiped:obj" } self:GetChildren(node) SetLocalScale(self.head.transform, 0.7,0.7,0.7) self:InitEvent() self:UpdateView() self:SetSelect(self.select_state) end function RoleHeadShowItem:InitEvent() local function onBtnClickHandler(target, x, y) if target == self.gameObject then if self.callback then self.callback(self.index, self.data, self.lock_state) end end end AddClickEvent(self.gameObject, onBtnClickHandler, 2) end function RoleHeadShowItem:SetData(index, data, callback) self.data = data self.index = index self.callback = callback or nil -- 获取锁定状态 self.lock_state = self.data and self.data.status and self.data.status ~= 2 or false if self.is_loaded then self:UpdateView() end end function RoleHeadShowItem:UpdateView( ) if not self.data then return end lua_resM:setOutsideRawImage(self, self.head_raw, GameResPath.GetHeadIcon(self.data.photo_id), true) self:RefreshActivate() self:RefreshEquipFlag() self:SetLock() end -- 刷新头像锁定标识 function RoleHeadShowItem:SetLock() self.lock_state = self.data and self.data.status and self.data.status == 0 or false self.lock_obj:SetActive(self.lock_state) end -- 刷新头像激活标识 function RoleHeadShowItem:RefreshActivate( ) local status = self.data and self.data.status or 0 self.activatable_obj:SetActive(status == 1) end -- 刷新头像佩戴标识 function RoleHeadShowItem:RefreshEquipFlag( ) if not self.is_loaded then return end local cur_head_id = RoleManager.Instance.mainRoleInfo.profile_photo_id self.equiped_obj:SetActive(cur_head_id == self.data.photo_id) end function RoleHeadShowItem:SetSelect(bool) self.select_state = bool if self.is_loaded then self.select_obj:SetActive(bool) end end