setTimeScale慢放无效

在creator 3d v1.1.1中使用

  •             cc.director.getScheduler().setTimeScale(0.1);
    

无效,动画、粒子还是按原来的速度播放,请问大家这个是不是bug,有解决的办法吗?

_compScheduler 这个才是控制组件update的,你得改源码,改director的mainloop部分,或者修改componentscheduler这个类的update部分

改director的mainloop部分 我目前是这样的

非常感谢!我找到了源码的director.ts,增加了个public变量_timeScale,再在update里把dt乘以_timeScale。然后在编辑器->开发者->编译引擎,就可以用代码控制cc.director._timeScale = 0.1;来控制慢动作了~

非常感谢:)

请问在web是正常的 为什么真机上是没有慢放的

能是否出一个教程,修改源码的director.ts 。 有好多想改想试试

一种无须修改引擎的写法供参考

cc.director.kSpeed = 1

var old = cc.Director.prototype.calculateDeltaTime
cc.Director.prototype.calculateDeltaTime = function(now) {
    old.call(this, now)
    this._deltaTime *= this.kSpeed
}

// dt 变为原来 1/10
cc.director.kSpeed = 0.1
1赞

这种操作比较好

这个方法可以