CocosCreator 3D 重複加載場景問題

如題,cc.director.loadScene 加載第二次場景的時候會顯示此錯誤

雖然場景依然會加載成功,但不明瞭為何會出現此訊息…

CocosCreator 3D Ver. 1.0.4

可能需要 demo

請問該如何提供給你們demo呢?

打包一个可重现问题的项目以附件形式发出来就可以了

web-mobile.zip (462.1 KB)

操作方式: 按下鍵盤a、b鍵切換場景即可

麻煩了!

額外測試:

同樣方式驗證在 2D 的 2.3.2 版本是可行的,且不會有錯誤

从你的程序中提取了有问题的代码

onLoad () {
    i.on(u.EventType.KEY_DOWN, (function (e) {
        switch (e.keyCode) {
            case l.KEY.a:
                p.loadScene("Test2");
                break;
            case l.KEY.b:
                p.loadScene("Test1")
        }
    }), this)
}

你在组件的 onLoad 中注册了键盘事件,但是在 onDestroy 中并没有取消事件。那么在第一次场景切换过程中,注册的键盘事件就有两个了,这两个的回调都一样,都是去 loadScene。第二次场景切换的时候,就会触发两次 loadScene,我们在场景加载上做了保护,如果存在正在加载的场景会报错。所以你的代码应该在 onDestroy 中取消监听键盘事件,确保同一时刻只有一个键盘事件监听器