c1_lua/lua/app/common/uiprefab_manager.lua
2023-04-03 10:59:13 +08:00

29 lines
815 B
Lua

local UIPrefabObject = require "app/bf/unity/uiprefab_object"
local UIPrefabManager = {}
local TypeOfGameObject = GConst.TYPEOF_UNITY_CLASS.GAME_OBJECT
function UIPrefabManager:loadUIWidgetAsync(path, parent, callback)
ResourceManager:loadAsync(path, TypeOfGameObject, function(assetPath, prefab)
if parent and parent:isDestroyed() then
ResourceManager:destroyPrefab(prefab)
ResourceManager:unload(assetPath)
return
end
local prefabObject = UIPrefabObject:create()
prefabObject:initWithPrefab(assetPath, prefab)
prefabObject:initPrefabHelper()
prefabObject:addUnloadCallback(function(obj)
ResourceManager:unload(obj:getAssetPath())
end)
if parent then
prefabObject:setParent(parent, false)
end
if callback then
callback(prefabObject)
end
end)
end
return UIPrefabManager