If/Else 条件正在改变变量的值 (SparkAR)
If/Else condition is changing the value of variable (SparkAR)
我在 SparkAR 中遇到了这个奇怪的问题。
我试图从补丁编辑器中提取数据并将其传递给 if/else,但没有成功。我删除了所有内容以查看问题出在哪里,看起来像这样的代码:
function compareAlpha(){
var alpha = 0;
if (alpha = 1){
Diagnostics.log('alpha is 1')
} else {
Diagnostics.log('alpha is not 1')
}
};
compareAlpha();
显示为 "alpha is 1",这对我来说听起来很疯狂。我将 alpha 声明为 0 然后 if 条件将其更改为 1??
抱歉,如果这是一个非常愚蠢的问题,我才刚刚开始编码,而且 spark 网站上的文档并不那么容易理解。
function compareAlpha(){
var alpha = 0;
if (alpha === 1){
Diagnostics.log('alpha is 1')
} else {
Diagnostics.log('alpha is not 1')
}
};
compareAlpha();
请使用 == 或 === 来检查条件,否则将无法正常工作。如果您使用 1 次=,则多次使用 = 符号,这意味着您在 variale 中使用一个值,如果您使用 2 o 3 =,则意味着您正在比较右侧和左侧
您不能"pull"补丁编辑器中的任何数据。
您需要明确地将补丁编辑器中的数据传递给脚本。
最简单的例子:
- 创建新的空白项目
- 添加脚本并在其设置中创建 "To script" 数字变量
See Pic 1
现在您可以在脚本中通过模块 "Patches"
访问变量 "alpha"
- 将此代码添加到脚本中
const Patches = require('Patches');
const Diagnostics = require('Diagnostics');
// monitor() and subscribe() methods allows you yo "listen" variable changes in patch editor
Patches.outputs.getScalar('alpha').then(function(alphaSignal){
alphaSignal.monitor().subscribe(function(alphaVal){
if(alphaVal.newValue == 1)
{
Diagnostics.log('alpha is 1');
}
else
{
Diagnostics.log('alpha is not 1');
}
});
});
- 一切正常,让我们做一些简单的检查并确保必要的消息显示在控制台中。例如,一组来回更改 alpha 值的补丁。 See Pic 2
我在 SparkAR 中遇到了这个奇怪的问题。
我试图从补丁编辑器中提取数据并将其传递给 if/else,但没有成功。我删除了所有内容以查看问题出在哪里,看起来像这样的代码:
function compareAlpha(){
var alpha = 0;
if (alpha = 1){
Diagnostics.log('alpha is 1')
} else {
Diagnostics.log('alpha is not 1')
}
};
compareAlpha();
显示为 "alpha is 1",这对我来说听起来很疯狂。我将 alpha 声明为 0 然后 if 条件将其更改为 1??
抱歉,如果这是一个非常愚蠢的问题,我才刚刚开始编码,而且 spark 网站上的文档并不那么容易理解。
function compareAlpha(){
var alpha = 0;
if (alpha === 1){
Diagnostics.log('alpha is 1')
} else {
Diagnostics.log('alpha is not 1')
}
};
compareAlpha();
请使用 == 或 === 来检查条件,否则将无法正常工作。如果您使用 1 次=,则多次使用 = 符号,这意味着您在 variale 中使用一个值,如果您使用 2 o 3 =,则意味着您正在比较右侧和左侧
您不能"pull"补丁编辑器中的任何数据。
您需要明确地将补丁编辑器中的数据传递给脚本。
最简单的例子:
- 创建新的空白项目
- 添加脚本并在其设置中创建 "To script" 数字变量 See Pic 1
现在您可以在脚本中通过模块 "Patches"
访问变量 "alpha"- 将此代码添加到脚本中
const Patches = require('Patches');
const Diagnostics = require('Diagnostics');
// monitor() and subscribe() methods allows you yo "listen" variable changes in patch editor
Patches.outputs.getScalar('alpha').then(function(alphaSignal){
alphaSignal.monitor().subscribe(function(alphaVal){
if(alphaVal.newValue == 1)
{
Diagnostics.log('alpha is 1');
}
else
{
Diagnostics.log('alpha is not 1');
}
});
});
- 一切正常,让我们做一些简单的检查并确保必要的消息显示在控制台中。例如,一组来回更改 alpha 值的补丁。 See Pic 2