【问题标题】:Tween.js rotation not working when using Three.js loader使用 Three.js 加载器时,Tween.js 旋转不起作用
【发布时间】:2015-08-26 10:59:32
【问题描述】:

我正在从事一个几年前开始的模拟项目。他们使用的是旧版本的 three.js 和 tween.js 库,我因为其他原因不得不升级它们。我有一个问题,那段代码以前可以工作,现在不行,我不知道为什么......

现在,让我解释一下问题所在。在应用程序启动时,通过为每个网格调用此函数来加载网格:

function loadMesh(objPath, objName, worldScene, initPosition) {
    if (initPosition == undefined) {
        initPosition = new THREE.Vector3();
    }
    var loader = new THREE.JSONLoader();
    loader.load(objPath, function (geometry, materials) {
        for (var material in materials) {
            materials[material].shading = THREE.FlatShading;
        }
        var mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
        mesh.scale.set(1, 1, 1);
        mesh.name = objName;
        mesh.position = initPosition;
        mesh.positionO = initPosition.clone();

        worldScene.add(mesh);
        objects.push(mesh);
        objDict[objName] = mesh;
        loadCounter--;
    });
}

注意:我只会展示动画创建,我稍后会在它们上调用“start”方法,当然 现在,当我尝试通过更改其 位置 来移动该对象时,它可以工作:

new TWEEN.Tween(objDict["Screws"].position)
    .to({y: 5}, 1000)
    .delay(500);

但如果我尝试像这样旋转我的对象,它不起作用:

new TWEEN.Tween(objDict["ms_LidUpper"].rotation)
    .to({x: -1.571}, 1000)
    .delay(500);

我试图解决这个问题,但找不到任何东西...请注意,此代码以前有效!我认为问题在于 JSONLoader,因为当我在调试模式下运行代码时,mesh 对象缺少 ma​​trixRotationWorld 属性并且 ma​​trixWorldNeedsUpdate 属性为 false,并且在之前的应用版本中,ma​​trixWorldNeedsUpdate 为 true,并且有 ma​​trixRotationWorld 属性。

任何帮助将不胜感激!

【问题讨论】:

  • @WestLangley 嘿,但是 .position 有效......这不可能是那个问题
  • @WestLangley 嘿,对不起,伙计,这和你最后说的差不多……谢谢你的帮助!

标签: javascript three.js tween


【解决方案1】:

像这样使用补间

var coords = { x: 0, y: 0 };
new TWEEN.Tween(mesh.rotation).to({x: 10, y: 10}, 3000).onUpdate(function () {
    mesh.rotation.x = coords.x;
    mesh.rotation.y = coords.y;
}).start();

【讨论】:

  • 你不是说:new TWEEN.Tween(coords).to({x: 10, y: 10}, 3000).onUpdate(function () {
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 1970-01-01
  • 2016-02-29
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
相关资源
最近更新 更多