簡體   English   中英

如何在 Lens Studio 中通過 genericTweenValue 旋轉對象

[英]How to rotate an object by genericTweenValue in Lens Studio

我有一個對象,每次點擊屏幕時我都想在 y 軸上旋轉 90 度,並且我想使用 tween 管理器中使用 genericTweenValue 的緩動功能。 在下面的代碼中,我嘗試這樣做,但角度似乎是錯誤的。

預期結果:每次點擊時,對象都會旋轉 90 度角。 實際結果:在每次點擊時進行多次旋轉,而不是 90 度。

global.turn = function() {
    var updateEvent = script.createEvent("UpdateEvent");

    var transform = object.getTransform();
    var rotation = transform.getLocalRotation();

    tweenManager.setStartValue(object, "y_rot_", rotation.y);
    tweenManager.setEndValue(object, "y_rot_", rotation.y + 90);

    updateEvent.bind(function(eventData) {
        var rotY = tweenManager.getGenericTweenValue(object, "y_rot_");
        var rotationToApply = quat.angleAxis(rotY, vec3.up());
        var oldRotation = object.getTransform().getLocalRotation();
        var newRotation = rotationToApply.multiply(oldRotation);
        transform.setLocalRotation(newRotation);
    });

    tweenManager.startTween(object, "y_rot_", function() {
        script.removeEvent(updateEvent);
    });
}

var touchEvent = script.createEvent("TapEvent");
touchEvent.bind(function(eventData) {global.turn()});

我通過將rotationToApply.multiply(rotation)放在transform.setLocalRotation

global.turn = function() {
    var updateEvent = script.createEvent("UpdateEvent");

    var transform = object.getTransform();
    var rotation = transform.getLocalRotation();

    tweenManager.setStartValue(object, "y_rot_", rotation.y);
    tweenManager.setEndValue(object, "y_rot_", rotation.y + 90);

    updateEvent.bind(function(eventData) {
        var rotY = tweenManager.getGenericTweenValue(object, "y_rot_");
        var rotationToApply = quat.angleAxis(degToRad(rotY), vec3.up());
        transform.setLocalRotation(rotationToApply.multiply(rotation));
    });

    tweenManager.startTween(object, "y_rot_", function() {
        script.removeEvent(updateEvent);
    });
}

var touchEvent = script.createEvent("TapEvent");
touchEvent.bind(function(eventData) {global.turn()});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM