【ios】添加图片回收机制,子物体不再从缓存池中创建,修改commonatlas到dy文件夹
parent
c31a82ef7f
commit
56d849c6a1
|
@ -8,8 +8,6 @@ this.game = nil
|
||||||
this.name = nil
|
this.name = nil
|
||||||
this.isPlayAudio = true
|
this.isPlayAudio = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--UIManager打开UI时调用(子类不要重写此方法)
|
--UIManager打开UI时调用(子类不要重写此方法)
|
||||||
function BasePanel:CreateUI(gameObject)
|
function BasePanel:CreateUI(gameObject)
|
||||||
self.name = gameObject.name
|
self.name = gameObject.name
|
||||||
|
@ -17,11 +15,24 @@ function BasePanel:CreateUI(gameObject)
|
||||||
self.transform = gameObject.transform
|
self.transform = gameObject.transform
|
||||||
self.canvas = self.gameObject:GetComponent("Canvas")
|
self.canvas = self.gameObject:GetComponent("Canvas")
|
||||||
self.openNum = 0
|
self.openNum = 0
|
||||||
|
self.SpriteList = {}
|
||||||
if self.Awake ~= nil then
|
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 )
|
end
|
||||||
|
MyPCall(
|
||||||
|
function()
|
||||||
|
self:InitComponent()
|
||||||
|
end
|
||||||
|
)
|
||||||
|
MyPCall(
|
||||||
|
function()
|
||||||
|
self:BindEvent()
|
||||||
|
end
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
--设置渲染层级
|
--设置渲染层级
|
||||||
|
@ -32,10 +43,10 @@ function BasePanel:SetSortingOrder(sortingOrder)
|
||||||
self:OnSortingOrderChange()
|
self:OnSortingOrderChange()
|
||||||
end
|
end
|
||||||
|
|
||||||
local playUIAnimsOnStart = function (gameObject)
|
local playUIAnimsOnStart = function(gameObject)
|
||||||
local anims = gameObject:GetComponentsInChildren(typeof(PlayFlyAnim))
|
local anims = gameObject:GetComponentsInChildren(typeof(PlayFlyAnim))
|
||||||
if anims.Length > 0 then
|
if anims.Length > 0 then
|
||||||
for i=0, anims.Length-1 do
|
for i = 0, anims.Length - 1 do
|
||||||
local anim = anims[i]
|
local anim = anims[i]
|
||||||
if anim.isPlayOnOpen then
|
if anim.isPlayOnOpen then
|
||||||
anim:PlayAnim(false)
|
anim:PlayAnim(false)
|
||||||
|
@ -47,7 +58,11 @@ end
|
||||||
--UI打开时由UIManager调用(子类不要重写此方法)
|
--UI打开时由UIManager调用(子类不要重写此方法)
|
||||||
function BasePanel:OpenUI(IsBackOpen, ...)
|
function BasePanel:OpenUI(IsBackOpen, ...)
|
||||||
if not self.isOpened then
|
if not self.isOpened then
|
||||||
MyPCall(function() self:AddListener() end)
|
MyPCall(
|
||||||
|
function()
|
||||||
|
self:AddListener()
|
||||||
|
end
|
||||||
|
)
|
||||||
if self.Update ~= nil then
|
if self.Update ~= nil then
|
||||||
UpdateBeat:Add(self.Update, self)
|
UpdateBeat:Add(self.Update, self)
|
||||||
end
|
end
|
||||||
|
@ -79,7 +94,11 @@ end
|
||||||
--UI关闭时由UIManager调用(子类不要重写此方法)
|
--UI关闭时由UIManager调用(子类不要重写此方法)
|
||||||
function BasePanel:CloseUI()
|
function BasePanel:CloseUI()
|
||||||
if self.isOpened then
|
if self.isOpened then
|
||||||
MyPCall(function() self:RemoveListener() end)
|
MyPCall(
|
||||||
|
function()
|
||||||
|
self:RemoveListener()
|
||||||
|
end
|
||||||
|
)
|
||||||
if self.Update ~= nil then
|
if self.Update ~= nil then
|
||||||
UpdateBeat:Remove(self.Update, self)
|
UpdateBeat:Remove(self.Update, self)
|
||||||
end
|
end
|
||||||
|
@ -99,6 +118,7 @@ end
|
||||||
|
|
||||||
--UI销毁时由UIManager调用(子类不要重写此方法)
|
--UI销毁时由UIManager调用(子类不要重写此方法)
|
||||||
function BasePanel:DestroyUI()
|
function BasePanel:DestroyUI()
|
||||||
|
self:UnLoadSprite()
|
||||||
self:OnDestroy()
|
self:OnDestroy()
|
||||||
Game.GlobalEvent:DispatchEvent(GameEvent.UI.OnDestroy, self.uiConfig.id, self)
|
Game.GlobalEvent:DispatchEvent(GameEvent.UI.OnDestroy, self.uiConfig.id, self)
|
||||||
end
|
end
|
||||||
|
@ -155,10 +175,23 @@ end
|
||||||
function BasePanel:OnDestroy()
|
function BasePanel:OnDestroy()
|
||||||
end
|
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
|
||||||
|
|
|
@ -16,4 +16,20 @@ function InitLanguageData()
|
||||||
LogGreen("语言初始化完成:"..tostring(#languageData))
|
LogGreen("语言初始化完成:"..tostring(#languageData))
|
||||||
end
|
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()
|
InitLanguageData()
|
|
@ -14,7 +14,8 @@ local function playUIAnimsOnStart(gameObject, callback)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local function createPanel(uiConfig, parent)
|
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
|
gameObject.name = uiConfig.name
|
||||||
local transform = gameObject.transform
|
local transform = gameObject.transform
|
||||||
transform:SetParent(parent)
|
transform:SetParent(parent)
|
||||||
|
@ -66,7 +67,7 @@ function this.Close(sub)
|
||||||
if sub.OnClose then
|
if sub.OnClose then
|
||||||
sub:OnClose()
|
sub:OnClose()
|
||||||
end
|
end
|
||||||
poolManager:UnLoadAsset(sub.assetName, sub.gameObject, PoolManager.AssetType.GameObject)
|
resMgr:UnLoadAsset(sub.assetName)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -532,16 +532,16 @@ public class FindReferences
|
||||||
else{
|
else{
|
||||||
Counter.Add(resName, 1);
|
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")
|
if (subFolder == "ArtFont")
|
||||||
{
|
{
|
||||||
tarPath += "/ArtFont";
|
tarPath += "/ArtFont";
|
||||||
|
|
Loading…
Reference in New Issue