You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Phaser中重启当前场景?Scene.restart()方法不存在的解决办法

Phaser场景重启实现方案
  • Scene.restart()确实不是Phaser的原生方法,你看到的大概率是社区自定义实现或者旧版本的误传。
  • 官方推荐的重启当前场景的方式,是在场景内部直接调用this.scene.restart()——这里的this指向当前场景实例,scene是内置的场景管理器,restart()是管理器的原生方法。
  • 举个实际使用的代码例子:
    // 比如在场景内的按键回调里
    this.input.keyboard.on('keydown-R', () => {
      this.scene.restart();
    });
    
  • 如果需要给重启后的场景传递初始化参数,直接在方法里加配置对象就行:
    // 重启时传参
    this.scene.restart({ currentLevel: 3, playerScore: 500 });
    
    // 在场景的init方法里接收参数
    init(params) {
      this.level = params.currentLevel;
      this.score = params.playerScore;
    }
    
  • 要是从其他场景触发重启(比如主菜单重启游戏场景),先通过场景key获取实例再调用:
    // 假设游戏场景的key是'PlayScene'
    this.scene.get('PlayScene').scene.restart();
    

内容的提问来源于stack exchange,提问作者Dumbass

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:55:18