一个Phaser新手。我使用的是Phaser3.16.2和https://github.com/rexrainbow/phaser3-rex-notes的插件。
当我在第一个场景(Docs)的preload()方法中加载一个插件,然后在同一场景中使用create()方法时,它工作正常。但是,如果我更改场景(到Docs2),并尝试在其中使用插件,我会得到错误:
TypeError: this.rexUI is undefined我在控制台日志中看到,插件在两个场景中都已加载。
class Docs extends Phaser.Scene {
constructor() {
super({key: 'Docs'})
}
init(data) {
}
preload() {
console.log(this);
this.load.scenePlugin({
key: 'rexuiplugin',
url: 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/plugins/dist/rexuiplugin.min.js',
sceneKey: 'rexUI'
});
}
create() {
this.backButton = new Button(this, 50, 50, 'btn-start', this.goDocs2, 'goDocs2');
var itemInfoRect = this.rexUI.add.roundRectangle(96, 96, 50, 50, 0, COLOR_DARKEST);
}
goDocs2() {
this.scene.start('Docs2');
}
}
class Docs2 extends Phaser.Scene {
constructor() {
super({key: 'Docs2'})
}
init() {
}
preload() {
console.log(this);
}
create() {
var itemInfoRect = this.rexUI.add.roundRectangle(96, 96, 50, 50, 0, COLOR_LIGHT);
}
}发布于 2019-02-25 03:31:11
好吧,这是一个开放的bug。有一种解决方法:
https://stackoverflow.com/questions/54851853
复制相似问题