/** 缓存到持久化目录 */ private void resourceCache() { if (ShineSetting.debugJumpResourceVersion) { return; } if (_www != null) { //缓存 FileUtils.writeFileForBytes(ResourceInfoControl.getPersistentPath(_url, false), _www.bytes); _currentSaveData.state = ResourceSaveStateType.Downloaded; ResourceInfoControl.versionModified(); } else if (_webRequest != null) { // _webRequest. } else { Ctrl.errorLog("ShineLoader,resourceCache时,没有可用对象"); } }
/** 执行加载 */ private void toLoad() { _needSize = 0; switch (_loadMethod) { case LoadMethodType.Resource: { if (ShineSetting.debugJumpResourceVersion || ShineSetting.localLoadWithOutBundle) { _needSize = 0; _useURL = ResourceInfoControl.getStreamingAssetsPath(_url, true); _resourceType = ResourceType.Unknown; } else { if ((_currentSaveData = ResourceInfoControl.getResourceSaveData(_url)) == null) { Ctrl.throwError("不该找不到资源数据", _url); return; } _resourceType = _currentSaveData.getType(); bool isBundle = _resourceType == ResourceType.Bundle; _needSize = _currentSaveData.size; //从steamingAsset中加载 if (_currentSaveData.state == ResourceSaveStateType.StreamingAssetsReady) { _useURL = ResourceInfoControl.getStreamingAssetsPath(_url, !isBundle); } //从持久化中加载 else if (_currentSaveData.state == ResourceSaveStateType.Downloaded) { _useURL = ResourceInfoControl.getPersistentPath(_url, !isBundle); } //需要加载 else { _useURL = ResourceInfoControl.getCDNResourcePath(_url, _currentSaveData.version); _needCache = true; } } } break; case LoadMethodType.StreamingAssets: { _useURL = ResourceInfoControl.getStreamingAssetsPath(_url, true); _resourceType = ResourceType.Unknown; } break; default: { _useURL = _url; _resourceType = ResourceType.Unknown; } break; } _reloadTimes = 0; //标记开始加载 _loadState = LoadState_Loading; resetTimeOut(); toDoLoad(); }