-
Creator 版本: 2.4.10
-
目标平台: Chrome
-
重现方式:将场景所在目录设置成分包
-
首个报错:loadScene: Can not load the scene because it was not in the build settings before playing.
-
之前哪个版本是正常的:
-
手机型号:
-
手机浏览器:
-
编辑器操作系统:
-
重现概率: 100%
it was not in the build settings before playing.
目录不配置Bundle是正常,配置后才会报错
看起来是逻辑加载错误
CCDebug.js:251 loadScene: Can not load the scene ‘Hall’ because it was not in the build settings before playing.
101.cc.errorID @ CCDebug.js:251
preloadScene @ CCDirector.js:585
Util.preloadScene @ assets\framework\scripts\utils\Util.js:34
loadHall @ assets\framework\scripts\view\loading\Login.js:449
necessaryCfgLoadFinish @ assets\framework\scripts\view\loading\Login.js:293
onEnd @ assets\framework\scripts\utils\EventCustom.js:232
285.proto.emit @ callbacks-invoker.js:341
219.proto.dispatchEvent @ event-target.js:215
EventCustom.emit @ assets\framework\scripts\utils\EventCustom.js:273
_responseMatchRewardCfg @ assets\component\Match\res\need\MatchLogic.js:107
LogicBasePrototype.onSrvMsg @ assets\framework\scripts\logic\Logic.js:94
ServerBasePrototype.msgDispatcher @ assets\framework\scripts\model\net\NetServerBase.js:418
ServerBasePrototype.dataParser @ assets\framework\scripts\model\net\NetServerBase.js:253
ServerBasePrototype.updateRecvQueue @ assets\framework\scripts\model\net\NetServerBase.js:334
ServerBasePrototype.eventParser @ assets\framework\scripts\model\net\NetServerBase.js:230
eval @ assets\framework\scripts\model\net\NetServerBase.js:35
NetSocketPrototype._event @ assets\framework\scripts\model\net\NetDefenseSocket.js:239
NetSocketPrototype._onmessage @ assets\framework\scripts\model\net\NetDefenseSocket.js:249
SocketDefensePrototype.ConnectHander @ assets\framework\scripts\model\net\NetDefenseSocket.js:312
NetConnectPrototype._event @ assets\framework\scripts\model\net\NetConnect.js:86
eval @ assets\framework\scripts\model\net\NetConnect.js:102
Util.preloadScene = function (name, func) {
if (typeof func === "undefined" || func === null) {
func = function () {};
}
cc.director.preloadScene(name, func);
};
需要先加载场景的Bundle吧,加载bundle后再preload场景
本地运行也要?
Util.preloadScene = function (name, func) {
if (typeof func === "undefined" || func === null) {
func = function () {};
}
cc.assetManager.loadBundle(name,function(){
cc.director.preloadScene(name, func);
})
};
是的,先加载bundle,再preload场景。