如何在 Spark AR 脚本中监控脉冲值?
How do I monitor a pulse value in a Spark AR script?
作为 Spark AR Studio 项目的一部分,Patch 中使用了一个脚本。
这个脚本有两个输入(一个布尔值,一个触发器)和两个输出(两个触发器)。
监控 bool 输入按预期工作,但监控触发器输入突然开始抛出错误:
JavaScript error: TypeError: triggerIn.monitor is not a function. (In 'triggerIn.monitor()', 'triggerIn.monitor' is undefined)
以下是文件中的所有代码:
const Diagnostics = require('Diagnostics');
var Patches = require('Patches');
var Reactive = require('Reactive');
var input1 = Patches.getBooleanValue('input1');
var triggerIn = Patches.getPulseValue('triggerIn');
var onHead = true;
triggerIn.monitor().subscribe( function(e) {
if (input1) {
if (onHead) {
Diagnostics.log('Play-Trigger');
Patches.setPulseValue("play", Reactive.once());
} else {
Diagnostics.log('Reset-Trigger');
Patches.setPulseValue("reset", Reactive.once());
}
onHead = !onHead;
}
});
input1.monitor().subscribe( function(e) {
if (e.newValue == true && !onHead) {
Diagnostics.log('Reset-1');
Patches.setPulseValue("reset", Reactive.once());
onHead = true;
}
});
triggerIn
连接到 Head Nod
节点的输出,而 input1
连接到 Exactly Equals
节点的输出。输出连接到 Animation
节点的 play
和 reset
输入。
以前我在监控功能上有不同的胆量并且一切正常,但现在即使我删除所有代码并输入日志消息它仍然不起作用。
难道不能监听触发信号? Spark AR 是否有点像 Xcode 有时需要清理构建文件夹?如果是这样,Spark AR 的等价物是什么?或者,也许我以某种方式搞砸了语法并且对它视而不见?
我可以只使用 Patch 来制作效果,但脚本可以创造更好的用户体验。
在文档中翻来覆去(他们确实需要像苹果文档那样的交叉链接)我终于找到了答案…
对于使用 Patches.getPulseValue()
获得的值,您省略了 monitor()
直接转到 subscribe()
的调用。
triggerIn.subscribe( function(e) {
…
});
作为 Spark AR Studio 项目的一部分,Patch 中使用了一个脚本。
这个脚本有两个输入(一个布尔值,一个触发器)和两个输出(两个触发器)。
监控 bool 输入按预期工作,但监控触发器输入突然开始抛出错误:
JavaScript error: TypeError: triggerIn.monitor is not a function. (In 'triggerIn.monitor()', 'triggerIn.monitor' is undefined)
以下是文件中的所有代码:
const Diagnostics = require('Diagnostics');
var Patches = require('Patches');
var Reactive = require('Reactive');
var input1 = Patches.getBooleanValue('input1');
var triggerIn = Patches.getPulseValue('triggerIn');
var onHead = true;
triggerIn.monitor().subscribe( function(e) {
if (input1) {
if (onHead) {
Diagnostics.log('Play-Trigger');
Patches.setPulseValue("play", Reactive.once());
} else {
Diagnostics.log('Reset-Trigger');
Patches.setPulseValue("reset", Reactive.once());
}
onHead = !onHead;
}
});
input1.monitor().subscribe( function(e) {
if (e.newValue == true && !onHead) {
Diagnostics.log('Reset-1');
Patches.setPulseValue("reset", Reactive.once());
onHead = true;
}
});
triggerIn
连接到 Head Nod
节点的输出,而 input1
连接到 Exactly Equals
节点的输出。输出连接到 Animation
节点的 play
和 reset
输入。
以前我在监控功能上有不同的胆量并且一切正常,但现在即使我删除所有代码并输入日志消息它仍然不起作用。
难道不能监听触发信号? Spark AR 是否有点像 Xcode 有时需要清理构建文件夹?如果是这样,Spark AR 的等价物是什么?或者,也许我以某种方式搞砸了语法并且对它视而不见?
我可以只使用 Patch 来制作效果,但脚本可以创造更好的用户体验。
在文档中翻来覆去(他们确实需要像苹果文档那样的交叉链接)我终于找到了答案…
对于使用 Patches.getPulseValue()
获得的值,您省略了 monitor()
直接转到 subscribe()
的调用。
triggerIn.subscribe( function(e) {
…
});