From bf3641d6c3307b35d362f0a8f400f53bf3dc2c79 Mon Sep 17 00:00:00 2001 From: gaoxin Date: Sun, 27 Sep 2020 15:04:12 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E5=93=81=E6=A1=86=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=A4=B4=E5=83=8F=E6=A1=86=E7=9A=84=E7=89=B9=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Common/Pool/Item/PlayerHead.lua | 1 - .../ManagedResources/~Lua/View/ItemView.lua | 83 ++++++++++++++++++- .../~Lua/View/PlayerHeadView.lua | 1 - 3 files changed, 82 insertions(+), 3 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Common/Pool/Item/PlayerHead.lua b/Assets/ManagedResources/~Lua/Modules/Common/Pool/Item/PlayerHead.lua index 2487b7544d..b0a6c062cd 100644 --- a/Assets/ManagedResources/~Lua/Modules/Common/Pool/Item/PlayerHead.lua +++ b/Assets/ManagedResources/~Lua/Modules/Common/Pool/Item/PlayerHead.lua @@ -43,7 +43,6 @@ function PlayerHead:SetEffectScale(scale) if self.frameEffect then local targetScale = scale/self.effectScale self.effectScale = scale - LogPink(targetScale) Util.SetParticleScale(self.frameEffect, targetScale) end end diff --git a/Assets/ManagedResources/~Lua/View/ItemView.lua b/Assets/ManagedResources/~Lua/View/ItemView.lua index 8a0113aecf..5922088040 100644 --- a/Assets/ManagedResources/~Lua/View/ItemView.lua +++ b/Assets/ManagedResources/~Lua/View/ItemView.lua @@ -54,6 +54,7 @@ function ItemView:InitComponent() self.UI_effect_ItemView_saoguang = Util.GetGameObject(self.gameObject, "effects/UI_effect_ItemView_saoguang") self.UI_effect_WuCai_Kuang = Util.GetGameObject(self.gameObject, "effects/UI_effect_WuCai_Kuang") + self:InitFrameEffect() end function ItemView:ToEffect(num) @@ -135,6 +136,8 @@ function ItemView:GetRewardShow(_itemData, effectLayer) Vector2.New(self.scale * 0.48,self.scale * 0.48) --Util.SetParticleScale(self.UI_Effect_SaoGuang, 0.5 / self.EffectOrginScale) self.EffectOrginScale = self.scale + -- 卸载头像框特效 + self:UnLoadFrameEffect() local isShowPrecious = _itemData.isShowPrecious or 0 if isShowPrecious == 0 then @@ -310,6 +313,15 @@ function ItemView:GetRewardShow(_itemData, effectLayer) --UIManager.OpenPanel(UIName.SoulPrintPopUp,0,nil,_itemData.backData.id,nil,nil) UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup, 0, _itemData.backData.id,_itemData.backData.equipId, 0,0) end) + elseif _itemData.ItemType == ItemType.HeadFrame then + self.UI_Effect_Kuang_JinSe:SetActive(false) + self.UI_Effect_Kuang_HongSe:SetActive(false) + self.UI_effect_WuCai_Kuang:SetActive(false) + -- 显示头像框特效 + local effectRoot = Util.GetGameObject(self.gameObject, "effects") + self:LoadFrameEffect(itemDataConFig.Id, effectRoot) + self:SetFrameEffectLayer(effectLayer) + self:SetFrameEffectScale(self.scale * 0.7) end self.gameObject:GetComponent("RectTransform").localScale = Vector2.New(self.scale, self.scale) end @@ -321,6 +333,9 @@ function ItemView:SetEffectLayer(effectLayer) Util.AddParticleSortLayer(self.UI_Effect_Kuang_HongSe, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_effect_ItemView_saoguang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_effect_WuCai_Kuang, effectLayer - self.EffectOrginLayerQu) + + self:SetFrameEffectLayer(effectLayer) + self.EffectOrginLayerQu = effectLayer end @@ -361,6 +376,8 @@ function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage) Vector2.New(self.scale * 0.48,self.scale * 0.48) --Util.SetParticleScale(self.UI_Effect_SaoGuang, self.scale / self.EffectOrginScale) self.EffectOrginScale = self.scale + -- 卸载头像框特效 + self:UnLoadFrameEffect() if effectLayer > 0 then self.UI_Effect_Kuang_JinSe:SetActive(itemDataConFig.Quantity == 5) @@ -512,12 +529,24 @@ function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemSId,0,0) end) + elseif itemDataConFig.ItemType == ItemType.HeadFrame then + self.UI_Effect_Kuang_JinSe:SetActive(false) + self.UI_Effect_Kuang_HongSe:SetActive(false) + self.UI_effect_WuCai_Kuang:SetActive(false) + + self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) + self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) + -- 显示头像框特效 + local effectRoot = Util.GetGameObject(self.gameObject, "effects") + self:LoadFrameEffect(itemDataConFig.Id, effectRoot) + self:SetFrameEffectLayer(effectLayer) + self:SetFrameEffectScale(self.scale * 0.7) else --,5随机道具,6符文 self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() - UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop) + UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId, nil, self.isRewardItemPop) end) end if itemNum <= 0 then @@ -614,4 +643,56 @@ end function ItemView:OnDestroy() end + + + + + + +-- 头像框特效相关 +function ItemView:InitFrameEffect() + -- body + self.orderLayer = 0 + self.effectScale = 1 + self.effectScaleFix = 1 +end + +function ItemView:LoadFrameEffect(frameId, parent) + local name, scale, pos = GetPlayerHeadFrameEffect(frameId) + if name then + self.frameEffectName = name + self.frameEffect = poolManager:LoadAsset(self.frameEffectName, PoolManager.AssetType.GameObject) + self.frameEffect.transform:SetParent(parent.transform) + self.frameEffect.transform.localPosition = pos + self.frameEffect.transform.localScale = Vector3.one + self.effectScaleFix = scale + Util.SetParticleScale(self.frameEffect, scale) -- 还原修正大小 + end +end +function ItemView:UnLoadFrameEffect() + if self.frameEffectName and self.frameEffect then + -- 重置层级 + self:SetFrameEffectLayer(0) + self:SetFrameEffectScale(1) + Util.SetParticleScale(self.frameEffect, 1/self.effectScaleFix) -- 还原修正大小 + poolManager:UnLoadAsset(self.frameEffectName, self.frameEffect, PoolManager.AssetType.GameObject) + self.frameEffectName = nil + self.frameEffect = nil + end +end +function ItemView:SetFrameEffectScale(scale) + if self.frameEffect then + local targetScale = scale/self.effectScale + self.effectScale = scale + Util.SetParticleScale(self.frameEffect, targetScale) + end +end +function ItemView:SetFrameEffectLayer(orderLayer) + if self.frameEffect then + Util.AddParticleSortLayer(self.frameEffect, orderLayer - self.orderLayer) + self.orderLayer = orderLayer + end +end + + return ItemView \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/View/PlayerHeadView.lua b/Assets/ManagedResources/~Lua/View/PlayerHeadView.lua index ba0f5095db..bdf64ba1c8 100644 --- a/Assets/ManagedResources/~Lua/View/PlayerHeadView.lua +++ b/Assets/ManagedResources/~Lua/View/PlayerHeadView.lua @@ -114,7 +114,6 @@ function PlayerHeadView:SetEffectScale(scale) if self.frameEffect then local targetScale = scale / self.effectScale self.effectScale = scale - LogPink(targetScale) Util.SetParticleScale(self.frameEffect, targetScale) end end