Example #1
0
        public void LoadAsset <T>(AssetId assetId, LoadAssetDelegate <T> onFinished) where T : Object
        {
            Object asset = null;

            if (cacheResDic.TryGetValue(assetId.ResId, out asset))
            {
                onFinished(true, string.Empty, asset as T);
            }
            else
            {
#if UNITY_EDITORF
                LoadAssetFromLocal <T>(assetId, onFinished);
#else
                LoadAssetFromBundle <T>(assetId, onFinished);
#endif
            }
        }
Example #2
0
        // private IEnumerator DoInit()
        // {
        //     //load asset bundle mainifest
        //     AssetBundle assetBundle = AssetBundle.LoadFromFile(string.Format("{0}/{1}", ResUtility.GetAssetBundlesPath(), ResUtility.ASSET_BUNDLE_FOLDER_NAME));
        //     AssetBundleManifest manifest = assetBundle.LoadAsset<AssetBundleManifest>(ResUtility.ASSET_BUNDLE_MANIFEST);
        // }

        private void LoadAssetFromLocal <T>(AssetId assetId, LoadAssetDelegate <T> onFinished) where T : Object
        {
            T      asset     = null;
            bool   isSuccess = false;
            string errMsg    = string.Empty;

            try
            {
                asset = AssetDatabase.LoadAssetAtPath <T>(assetId.ToString());
            }
            catch (System.Exception e)
            {
                isSuccess = false;
                errMsg    = e.ToString();
            }
            finally
            {
                onFinished(isSuccess, errMsg, asset);
            }
        }
Example #3
0
        public async Task <T> LoadAsset <T>(AssetId assetId) where T : Object
        {
            Object o = null;

            if (cacheResDic.TryGetValue(assetId, out o))
            {
                return(o as T);
            }

            // #if UNITY_EDITOR
            //                 LoadAssetFromLocal<T>(assetId, onFinished);
            // #else
            AssetBundle bundle = null;
            T           asset  = null;

            try
            {
                if (cacheAssetBundleDic.TryGetValue(assetId.BundleId, out bundle))
                {
                    asset = await LoadAssetFromBundle <T>(assetId, bundle);
                }
                else
                {
                    bundle = await LoadAssetBundle(assetId.BundleId);

                    asset = await LoadAssetFromBundle <T>(assetId, bundle);
                }
            }
            catch (System.Exception e)
            {
                ZLog.Debug(e.Message + "=====" + e.StackTrace);
            }

            return(asset);
            //#endif
        }
Example #4
0
 public async Task <T> LoadAsset <T>(string assetName) where T : Object
 {
     return(await LoadAsset <T>(AssetId.Create("", assetName)));
 }
Example #5
0
 public static string ConvertAssetIdToAssetBundlePath(AssetId assetId)
 {
     return($"{GetAssetBundlesPath()}/{assetId.ToString()}");
 }
Example #6
0
 public static string ConvertAssetIdToAssetBundlePath(AssetId assetId)
 {
     return(string.Format("{0}/{1}", GetAssetBundlesPath(), assetId.ToString()));
 }
Example #7
0
 private void LoadAssetFromBundle <T>(AssetId assetId, LoadAssetDelegate <T> onFinished) where T : Object
 {
 }