cc.director.getPhysicsManager().enabled 一定要写在 onLoad 里?

如题,写在其他地方都会导致2d物理引擎不启动。

  • Creator 版本: 2.4.3

  • 目标平台:全部

  • 重现方式:
    1、创建一个新的工程,
    2、放一个sprite到场景上
    3、为sprite添加 RigidBody 组件,和 PhysicsCircleCollider 组件(或其他形状碰撞)
    4、创建一个脚本,挂到Canvas,或其他地方。
    5、在脚本里写 onLoad(){ cc.director.getPhysicsManager().enabled = true } 有效
    6、在脚本里写 start(){ cc.director.getPhysicsManager().enabled = true } 无效
    7、在其他任何地方写 cc.director.getPhysicsManager().enabled = true,都无效,
    比如
    – 监听cc.director.on(cc.Director.EVENT_AFTER_SCENE_LAUNCH, this.firstGameSceneLunched, this),然后执行物理引擎启用,无效。
    – 如果游戏业务包含多个模块,在启动某个模块时执行,也无效。
    总之就是试了好多次之后必须写在onLoad里面

  • 重现概率: 100%

必须在项目启动的 第一个onload里调用。

对,说的就是这个事