public void Load(bool a_bAsync, UnityAction <AssetDesc> a_onLoadFinished) { if (LoadState == EAssetLoadState.Invalid) { _RegisterFinishedListener(a_onLoadFinished); m_bAsync = a_bAsync; LoadState = EAssetLoadState.Loading; // 先从包里加载资源,如果没有相关的包,则直接用Resources的方式加载 if (m_assetPackage == null) { AssetManager.Get().GetPackage(Path, out m_assetPackage); } if (m_assetPackage != null) { // 存在对应的包,从包里加载 m_assetPackage.Load(m_bAsync, _OnPackageLoadFinished); } else { // 不存在对应的包,用Resources的方式加载资源 if (m_bAsync) { if (AssetType == null) { m_resourceRequest = Resources.LoadAsync(Path); } else { m_resourceRequest = Resources.LoadAsync(Path, AssetType); } } else { if (AssetType == null) { m_assetTemplate = Resources.Load(Path); } else { m_assetTemplate = Resources.Load(Path, AssetType); } _OnLoadFinished(); } } } else if (LoadState == EAssetLoadState.Loading) { _RegisterFinishedListener(a_onLoadFinished); } else if (LoadState == EAssetLoadState.Done || LoadState == EAssetLoadState.Error) { if (a_onLoadFinished != null) { a_onLoadFinished(this); } } }