AssetsManager BUG

bug文件 github地址:https://github.com/cocos2d-html5/cocos2d-x/blob/v3_assets_manager/extensions/assets-manager/AssetsManager.cpp

出错函数:
void AssetsManager::checkUpdate()
{
if (!_localManifest->isLoaded())
{
CCLOG(“AssetsManager : No local manifest file found error.\n”);
dispatchUpdateEvent(EventAssetsManager::EventCode::ERROR_NO_LOCAL_MANIFEST);
return;
}

switch (_updateState) {
    case State::UNCHECKED:
    case State::PREDOWNLOAD_VERSION:
    {
        downloadVersion();
    }
        break;
    case State::UP_TO_DATE:
    {
        dispatchUpdateEvent(EventAssetsManager::EventCode::ALREADY_UP_TO_DATE);
    }
        break;
    case State::FAIL_TO_UPDATE:
    case State::NEED_UPDATE:
    {
        dispatchUpdateEvent(EventAssetsManager::EventCode::NEW_VERSION_FOUND);
    }
        break;
    default:
        break;
}

}

执行到downloadVersion()后,由于函数判断 _updateState != State::PREDOWNLOAD_VERSION 后面的逻辑不再执行
void AssetsManager::downloadVersion()
{
if (_updateState != State::PREDOWNLOAD_VERSION)
return;

std::string versionUrl = _localManifest->getVersionFileUrl();

if (versionUrl.size() > 0)
{
    _updateState = State::DOWNLOADING_VERSION;
    // Download version file asynchronously
    _downloader->downloadAsync(versionUrl, _cacheVersionPath, VERSION_ID);
}
// No version file found
else
{
    CCLOG("AssetsManager : No version file found, step skipped\n");
    _updateState = State::PREDOWNLOAD_MANIFEST;
    downloadManifest();
}

}

这个逻辑有什么问题呢。 :827:

你好,这个问题在3.1中已经被修复,谢谢