From 56d849c6a151af0255fabad33df3f9353828aec9 Mon Sep 17 00:00:00 2001 From: JLIOSM1 <774727341@qq.com> Date: Tue, 20 Apr 2021 17:13:10 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90ios=E3=80=91=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=9B=9E=E6=94=B6=E6=9C=BA=E5=88=B6=EF=BC=8C?= =?UTF-8?q?=E5=AD=90=E7=89=A9=E4=BD=93=E4=B8=8D=E5=86=8D=E4=BB=8E=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E6=B1=A0=E4=B8=AD=E5=88=9B=E5=BB=BA=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9commonatlas=E5=88=B0dy=E6=96=87=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ManagedResources/~Lua/Base/BasePanel.lua | 63 ++++++++++++++----- .../~Lua/Common/LanguageManager.lua | 16 +++++ .../~Lua/Framework/Manager/SubUIManager.lua | 5 +- Assets/Scripts/Editor/FindReferences.cs | 10 +-- 4 files changed, 72 insertions(+), 22 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Base/BasePanel.lua b/Assets/ManagedResources/~Lua/Base/BasePanel.lua index c48dad29e0..707d38c6b2 100644 --- a/Assets/ManagedResources/~Lua/Base/BasePanel.lua +++ b/Assets/ManagedResources/~Lua/Base/BasePanel.lua @@ -8,8 +8,6 @@ this.game = nil this.name = nil this.isPlayAudio = true - - --UIManager打开UI时调用(子类不要重写此方法) function BasePanel:CreateUI(gameObject) self.name = gameObject.name @@ -17,11 +15,24 @@ function BasePanel:CreateUI(gameObject) self.transform = gameObject.transform self.canvas = self.gameObject:GetComponent("Canvas") self.openNum = 0 + self.SpriteList = {} if self.Awake ~= nil then - MyPCall(function() self:Awake() end) + MyPCall( + function() + self:Awake() + end + ) end - MyPCall(function() self:InitComponent() end) - MyPCall(function() self:BindEvent() end ) + MyPCall( + function() + self:InitComponent() + end + ) + MyPCall( + function() + self:BindEvent() + end + ) end --设置渲染层级 @@ -32,10 +43,10 @@ function BasePanel:SetSortingOrder(sortingOrder) self:OnSortingOrderChange() end -local playUIAnimsOnStart = function (gameObject) +local playUIAnimsOnStart = function(gameObject) local anims = gameObject:GetComponentsInChildren(typeof(PlayFlyAnim)) if anims.Length > 0 then - for i=0, anims.Length-1 do + for i = 0, anims.Length - 1 do local anim = anims[i] if anim.isPlayOnOpen then anim:PlayAnim(false) @@ -47,7 +58,11 @@ end --UI打开时由UIManager调用(子类不要重写此方法) function BasePanel:OpenUI(IsBackOpen, ...) if not self.isOpened then - MyPCall(function() self:AddListener() end) + MyPCall( + function() + self:AddListener() + end + ) if self.Update ~= nil then UpdateBeat:Add(self.Update, self) end @@ -79,7 +94,11 @@ end --UI关闭时由UIManager调用(子类不要重写此方法) function BasePanel:CloseUI() if self.isOpened then - MyPCall(function() self:RemoveListener() end) + MyPCall( + function() + self:RemoveListener() + end + ) if self.Update ~= nil then UpdateBeat:Remove(self.Update, self) end @@ -99,6 +118,7 @@ end --UI销毁时由UIManager调用(子类不要重写此方法) function BasePanel:DestroyUI() + self:UnLoadSprite() self:OnDestroy() Game.GlobalEvent:DispatchEvent(GameEvent.UI.OnDestroy, self.uiConfig.id, self) end @@ -155,10 +175,23 @@ end function BasePanel:OnDestroy() end +function BasePanel:LoadSprite(name) + local transName = GetTranslateSpriteName(name) + local sp = resMgr:LoadAsset(name) + if sp then + if not self.SpriteList[sp.name] then + self.SpriteList[sp.name] = 0 + end + -- 每次加载会导致引用计数加2 + self.SpriteList[sp.name] = self.SpriteList[sp.name] + 1 + end +end - - - - - - +-- 根据界面加载的数量卸载相应数量的资源 +function BasePanel:UnLoadSprite() + for name, count in pairs(self.SpriteList) do + for i = 1, count do + resMgr:UnLoadAsset(name) + end + end +end diff --git a/Assets/ManagedResources/~Lua/Common/LanguageManager.lua b/Assets/ManagedResources/~Lua/Common/LanguageManager.lua index 8041924813..a17e29a3e8 100644 --- a/Assets/ManagedResources/~Lua/Common/LanguageManager.lua +++ b/Assets/ManagedResources/~Lua/Common/LanguageManager.lua @@ -16,4 +16,20 @@ function InitLanguageData() LogGreen("语言初始化完成:"..tostring(#languageData)) end +-- 图片名字翻译 +function GetTranslateSpriteName(name) + local subStr = string.sub(name, #name - 2, #name) + local transName = name + if subStr == "_zh" then + local l = GetCurLanguage() + if l == 1 then + transName = string.sub(transName, 1, #transName - 2) .. "en" + elseif l == 2 then + transName = string.sub(transName, 1, #transName - 2) .. "vi" + end + end + return transName +end + + InitLanguageData() \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Framework/Manager/SubUIManager.lua b/Assets/ManagedResources/~Lua/Framework/Manager/SubUIManager.lua index 2f3cce6306..6f48e31037 100644 --- a/Assets/ManagedResources/~Lua/Framework/Manager/SubUIManager.lua +++ b/Assets/ManagedResources/~Lua/Framework/Manager/SubUIManager.lua @@ -14,7 +14,8 @@ local function playUIAnimsOnStart(gameObject, callback) end end local function createPanel(uiConfig, parent) - local gameObject = poolManager:LoadAsset(uiConfig.assetName, PoolManager.AssetType.GameObject) + local _obj = resMgr:LoadAsset(uiConfig.assetName) + local gameObject = GameObject.Instantiate(_obj) gameObject.name = uiConfig.name local transform = gameObject.transform transform:SetParent(parent) @@ -66,7 +67,7 @@ function this.Close(sub) if sub.OnClose then sub:OnClose() end - poolManager:UnLoadAsset(sub.assetName, sub.gameObject, PoolManager.AssetType.GameObject) + resMgr:UnLoadAsset(sub.assetName) end diff --git a/Assets/Scripts/Editor/FindReferences.cs b/Assets/Scripts/Editor/FindReferences.cs index 34250bddea..24a54c7799 100644 --- a/Assets/Scripts/Editor/FindReferences.cs +++ b/Assets/Scripts/Editor/FindReferences.cs @@ -532,16 +532,16 @@ public class FindReferences else{ Counter.Add(resName, 1); } - if (!AssetDatabase.IsValidFolder("Assets/ManagedResources/Atlas/" + tarFolder)) + if (!AssetDatabase.IsValidFolder("Assets/ManagedResources/DynamicAtlas/" + tarFolder)) { - AssetDatabase.CreateFolder("Assets/ManagedResources/Atlas", tarFolder); + AssetDatabase.CreateFolder("Assets/ManagedResources/DynamicAtlas", tarFolder); } - if (!AssetDatabase.IsValidFolder("Assets/ManagedResources/Atlas/" + tarFolder + "/ArtFont")) + if (!AssetDatabase.IsValidFolder("Assets/ManagedResources/DynamicAtlas/" + tarFolder + "/ArtFont")) { - AssetDatabase.CreateFolder("Assets/ManagedResources/Atlas/" + tarFolder, "ArtFont"); + AssetDatabase.CreateFolder("Assets/ManagedResources/DynamicAtlas/" + tarFolder, "ArtFont"); } - string tarPath = "Assets/ManagedResources/Atlas/" + tarFolder; + string tarPath = "Assets/ManagedResources/DynamicAtlas/" + tarFolder; if (subFolder == "ArtFont") { tarPath += "/ArtFont";