使用 Javascript 旋转 3D 对象

问题描述 投票:0回答:0

我可以用一根手指旋转 3d 物体

var curPos = undefined;

var transform = script.getSceneObject().getTransform();

var speed = 10.0;

script.createEvent("TouchStartEvent").bind(function (eventData) {

    curPos = eventData.getTouchPosition();

});

script.createEvent("TouchMoveEvent").bind(function (eventData) {
    

    if(!curPos)
    
        return;

    var nextPos = eventData.getTouchPosition();

    var deltaX = nextPos.x - curPos.x;

    var deltaY = nextPos.y - curPos.y;


    var mat = transform.getInvertedWorldTransform();

    var axisX = mat.multiplyDirection(vec3.up());

    var deltaRotX = quat.angleAxis(deltaX * speed, axisX);

    var axisY = mat.multiplyDirection(vec3.right());

    var deltaRotY = quat.angleAxis(deltaY * speed, axisY);

    var rot = transform.getLocalRotation().multiply(deltaRotX).multiply(deltaRotY);

    transform.setLocalRotation(rot);

    curPos = nextPos;
             
});

enter image description here

但是当我尝试用两根手指缩放它时,它一直在旋转

请有任何建议,我使用一个简单的脚本进行旋转

谢谢enter image description here

我需要在触摸屏幕时挡住两根或更多手指

javascript 3d rotation catransform3drotate
© www.soinside.com 2019 - 2024. All rights reserved.