Tengo un objeto que quiero rotar en el eje y 90 grados cada vez que toco la pantalla y me gustaría usar las funciones de aceleración del administrador de interpolación usando genericTweenValue. En el siguiente código, trato de hacer eso, pero los ángulos parecen estar equivocados.
Resultado esperado: el objeto gira en un ángulo de 90 grados en cada toque. Resultado real: realiza múltiples rotaciones en cada toque, que no son de 90 grados.
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()});