public void Load(GameObject prefab, string bundle, string name, Action <UnityEngine.Object> callback, GameObject parent = null) { AssetInfo assetInfo = new AssetInfo(bundle, name); if (parent == null) { parent = _uiLoaderRoot; } UnityObject unityObj; unityObj = (_assetManager as UnityAssetManager).ObjectPool.GetOrNull(assetInfo); if (unityObj == null) { GameObject go = GameObject.Instantiate(prefab, parent.transform, false); unityObj = new UnityObject(go, assetInfo); unityObj.AddUnityObjectReference(); } if (callback != null) { callback(unityObj); } else { AddToGameObjectPool(unityObj); } }