예제 #1
0
        /** 缓存到持久化目录 */
        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时,没有可用对象");
            }
        }
예제 #2
0
        /** 执行加载 */
        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();
        }