public AssetObjectLoader(AssetBundle bundle, string assetName, System.Type assetType) { _cacheBundle = bundle; AssetName = assetName; AssetType = assetType; LoadState = EAssetObjectLoadState.None; }
/// <summary> /// 轮询更新方法 /// </summary> public void Update() { if (IsDone()) { return; } if (LoadState == EAssetObjectLoadState.None) { LoadState = EAssetObjectLoadState.LoadAssetObject; } // 1. 加载主资源对象 if (LoadState == EAssetObjectLoadState.LoadAssetObject) { // Load main asset System.Type systemType = AssetSystem.MakeSystemType(AssetType); _cacheRequest = _cacheBundle.LoadAssetAsync(AssetName, systemType); LoadState = EAssetObjectLoadState.CheckAssetObject; } // 2. 检测AssetObject加载结果 if (LoadState == EAssetObjectLoadState.CheckAssetObject) { if (_cacheRequest.isDone == false) { return; } AssetObject = _cacheRequest.asset; // Check error if (AssetObject == null) { LoadState = EAssetObjectLoadState.LoadAssetObjectFailed; LoadCallback?.Invoke(AssetObject, false); } else { LoadState = EAssetObjectLoadState.LoadAssetObjectOK; LoadCallback?.Invoke(AssetObject, true); } } }
/// <summary> /// 轮询更新方法 /// </summary> public void Update() { if (IsDone()) { return; } if (LoadState == EAssetObjectLoadState.None) { LoadState = EAssetObjectLoadState.LoadAssetObject; } // 1. 加载主资源对象 if (LoadState == EAssetObjectLoadState.LoadAssetObject) { if (AssetType == null) { _cacheRequest = _cacheBundle.LoadAssetAsync(AssetName); } else { _cacheRequest = _cacheBundle.LoadAssetAsync(AssetName, AssetType); } LoadState = EAssetObjectLoadState.CheckAssetObject; } // 2. 检测AssetObject加载结果 if (LoadState == EAssetObjectLoadState.CheckAssetObject) { if (_cacheRequest.isDone == false) { return; } AssetObject = _cacheRequest.asset; LoadState = AssetObject == null ? EAssetObjectLoadState.LoadAssetObjectFailed : EAssetObjectLoadState.LoadAssetObjectOK; LoadCallback?.Invoke(AssetObject); } }