使用TWEEN.js时update更新发现初始点位全部变成NaN

在使用tween时,只要执行了update方法就会发现传入的点变为NaN,从而导致模型消失

    console.log(t.target, t.paras);
    tw = new TWEEN.Tween(t.paras).to(t.target, d).easing(TWEEN.Easing.Quadratic.Out)
    tw.onUpdate(function (object) {
        for (const prop in t.collada.kinematics.joints) {
            if (t.collada.kinematics.joints.hasOwnProperty(prop)) {
                //排除静态的
                if (!t.collada.kinematics.joints[prop].static) {
                    t.collada.kinematics.setJointValue(prop, object[prop])
                }
            }
        }
    })
    tw.start()

打印后发现paras里面的值都为NaN了

解决办法

在animate中执行update时把animate传过来的参数传入update中,如下:

        t.setUpTween()
        t.animate = function (e) {
            if (tw) {
                tw.update(e)
            }
            return false
        }

添加后执行发现模型正常运动

posted @ 2022-12-08 23:47  rht  阅读(243)  评论(0)    收藏  举报