Пример #1
0
    public IEnumerator LoadAssetBundleAsync <T>(string abName, string assetName, System.Action <T> callback) where T : Object
    {
        AssetBundle ab = null;

        if (!m_abMaps.TryGetValue(abName, out ab))
        {
            AssetBundleCreateRequest request = AssetBundle.LoadFromFileAsync(Utility.GetResourcePath(abName));
            yield return(request);

            ab = request.assetBundle;
            if (null != ab)
            {
                Utility.Log("[AssetMgr] load ab file ok:" + abName);
                m_abMaps[abName] = ab;
            }
            else
            {
                Utility.LogError("[AssetMgr] load ab file failed:" + abName);
                yield return(false);
            }
        }

        if (assetName.Length > 0 && callback != null)
        {
            T assetObject = ab.LoadAsset <T>(assetName);
            if (null != assetObject)
            {
                callback.DynamicInvoke(assetObject);
            }
            else
            {
                Utility.LogError("[AssetMgr] load asset failed:" + assetName);
            }
        }
    }
Пример #2
0
 public void LoadLocalAsset <T>(string assetName, System.Action <T> callback) where T : Object
 {
     if (assetName.Length > 0 && callback != null)
     {
         T assetObject = UnityEditor.AssetDatabase.LoadAssetAtPath <T>(assetName);
         if (null != assetObject)
         {
             callback.DynamicInvoke(assetObject);
         }
         else
         {
             Utility.LogError("[AssetMgr] load local asset failed:" + assetName);
         }
     }
 }