如何在对象变为可见后停止动画循环并重置它?
How do I stop an animation loop and reset it after an object turns visible?
最近开始接触SparkAR Studio,对节点编程不太习惯
我正在制作一个简单的眨眼游戏,用户通过眨眼来控制一个物体。
问题是在显示 'Game Over' 屏幕后(在对象属性中检查可见性),循环仍在后台运行。这样做的问题是当用户点击屏幕重试时,如果时机不对,循环会导致障碍物停在角色面前,导致玩家再次失败。
有没有办法在对象变为可见/不可见时停止动画循环?
通过脚本/补丁编辑器。
(如果您需要工作文件,我很乐意提供)
在您的脚本中,有非常简单的方法可用:
driver.reset();
(如果你需要后退)
driver.stop();
如果您需要在脚本中实现所有动画:
const Animation = require('Animation');
//set up the length of the animations, 1000 = 1 second
const driverParameters = {durationMilliseconds: 1000, loopCount: Infinity, mirror: false};
var driver = Animation.timeDriver(driverParameters);
var sampler = Animation.samplers.linear(startValue, endValue);
myObject.transform.y = Animation.animate(driver, sampler);
// requires a first call
driver.start();
最近开始接触SparkAR Studio,对节点编程不太习惯
我正在制作一个简单的眨眼游戏,用户通过眨眼来控制一个物体。
问题是在显示 'Game Over' 屏幕后(在对象属性中检查可见性),循环仍在后台运行。这样做的问题是当用户点击屏幕重试时,如果时机不对,循环会导致障碍物停在角色面前,导致玩家再次失败。
有没有办法在对象变为可见/不可见时停止动画循环?
通过脚本/补丁编辑器。
(如果您需要工作文件,我很乐意提供)
在您的脚本中,有非常简单的方法可用:
driver.reset();
(如果你需要后退)driver.stop();
如果您需要在脚本中实现所有动画:
const Animation = require('Animation');
//set up the length of the animations, 1000 = 1 second
const driverParameters = {durationMilliseconds: 1000, loopCount: Infinity, mirror: false};
var driver = Animation.timeDriver(driverParameters);
var sampler = Animation.samplers.linear(startValue, endValue);
myObject.transform.y = Animation.animate(driver, sampler);
// requires a first call
driver.start();