2.4.9里面 motionsteak 的reset 是不是失效了?

rt,
2.4.8的时候还挺正常的。
这样一来,pool里面重用的话,就会拖一个长长的尾巴

1赞

找到了这个:
拖尾MotionStreak改变fadeTime,或者调用reset方法闪回0,0坐标 - Creator 2.x - Cocos中文社区

解决方法就是改一下引擎的motionstreak的 reset方法:
新建一个js文件:FixMotionStreak.js

cc.MotionStreak.prototype.reset = function () {
    this._points.length = 0;
    this._assembler && this._assembler._renderData.clear();

    let vWPos = this.node.convertToWorldSpaceAR(cc.Vec3.ZERO);
    this._lastWPos.x = vWPos.x;
    this._lastWPos.y = vWPos.y;
    false;
}

然后reset该怎么用怎么用。一般换了位置而不需要画线的时候,reset一下。之后画线的起点就正常了。

1赞

reset 函数最后有个false是什么…写错了吧

嗯嗯,必须是写错了。

2.4.3咋改呢? 没有_lastWPos变量

fadeTime: {

        get () {

            return this._fadeTime;

        },

        set (value) {

            this._fadeTime = value;

            this.reset();

        },

        animatable: false,

        tooltip: CC_DEV && 'i18n:COMPONENT.motionStreak.fadeTime'

    },

reset () {

    this._points.length = 0;

    this._assembler && this._assembler._renderData.clear();

    if (CC_EDITOR) {

        cc.engine.repaintInEditMode();

    }

},

只有这个