Javascript Spark AR在每次触摸旋转对象90度平滑



我想通过脚本在每次触摸时平滑旋转3d对象90度,在第4次触摸和重置时达到360度。我在补丁中尝试了这个,但我无法实现它。到目前为止,我有下面的代码,它首先触摸90度,但每次触摸后保持静止。循环变量在每次触摸时增加四分之一。我以为这在理论上行得通,但事实并非如此。这个任务看起来很简单,但就是做不起来。任何帮助都将非常感激。我是JS的新手。顺便说一句。多谢。

      <代码> 以前

const Scene = require('Scene');
const Reactive = require('Reactive');
const TouchGestures = require('TouchGestures');
const Diagnostics = require('Diagnostics');

(async function () {
  const myobject = await Scene.root.findFirst('BOX');
  const Animation = require('Animation');
  const timeDriver = Animation.timeDriver({
    durationMilliseconds: 5000,
    loopCount: 1,
    mirror: false
  });
  const PI_2 = Math.PI * 0.5;
  let i = 0;
  TouchGestures.onTap().subscribeWithSnapshot(
    {
      isRunning: timeDriver.isRunning()
    },
    function (gesture, snapshot) {
      // adding lock on tap to finish current animation loop
      if (!snapshot.isRunning) {
        QuarterTurn();
        Diagnostics.log("Current tap : " + i);
        i++;
      } else {
        Diagnostics.log("Animation is running!!!");
      }
    });
  function QuarterTurn() {
    const start = i * PI_2;
    const end = start + PI_2;
    const sampler = Animation.samplers.linear(start, end);
    myobject.transform.rotationX = Animation.animate(timeDriver, sampler);
    timeDriver.reset();
    timeDriver.start();
  }
})();

Getting Close它在第一次触碰达到90度时工作,但这是结束的地方。不会再转90度。

0.25个循环是这里的问题

你需要计算当前水龙头,然后计算开始和结束的角度,我也添加了一些管家脚本。

PP_4

最新更新