物品框添加头像框的特效

dev_chengFeng
gaoxin 2020-09-27 15:04:12 +08:00 committed by JieLing
parent b3d15c1945
commit bf3641d6c3
3 changed files with 82 additions and 3 deletions

View File

@ -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

View File

@ -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

View File

@ -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