Exemple #1
0
        public void Done()
        {
            if (request.error != null)
            {
                return;                        //报错或者加载的是场景
            }
            if (LoaderType.Typeof_ABScene.Equals(request.assetType))
            {
                CRequest.SetDone(request);
                return;
            }


            object m_Data = null;

            if (subAssets)
            {
                m_Data = ((AssetBundleRequest)m_Request).allAssets;
            }
            else
            {
                m_Data = ((AssetBundleRequest)m_Request).asset;
            }

            if (m_Data == null)
            {
                CRequest.SetError(request, string.Format("load asset({0}) from {1}  error, subAssets = {2}", request.assetName, request.assetBundleName, subAssets));
                Debug.LogError(request.error);
            }
            else
            {
                CRequest.SetData(request, m_Data);
                CRequest.SetDone(request);
            }
        }
Exemple #2
0
        //同步加载asset
        internal new void StartSync()
        {
            string assetName = request.assetName;
            var    assetType = request.assetType;

            string[] assetPaths = UnityEditor.AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName(request.assetBundleName, request.assetName);
            if (assetPaths.Length == 0)
            {
                CRequest.SetError(request, "There is no asset path exist  !  \"" + request.assetName + "\" in " + request.assetBundleName);
                Debug.LogError(request.error);
            }

            object data = null;

            foreach (var p in assetPaths)
            {
                if (subAssets)
                {
                    data = UnityEditor.AssetDatabase.LoadAllAssetsAtPath(p);
                }
                else
                {
                    data = UnityEditor.AssetDatabase.LoadAssetAtPath(p, assetType);
                }
                // GS_GameLog.LogFormat("LoadAssetAtPath({1},{2}).data={0} ", data, p, assetType);
                if (data != null && data.GetType().Equals(assetType))
                {
                    break;
                }
            }

            if (data == null)
            {
                CRequest.SetError(request, "There is no asset data  . \"" + request.assetName + "\" in " + request.assetBundleName);
                Debug.LogError(request.error);
            }

            CRequest.SetProgress(request, 1f);
            CRequest.SetData(request, data);
            CRequest.SetDone(request);
        }