29 lines
815 B
Lua
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 |