我想通过脚本在每次触摸时平滑旋转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