我正在尝试保存标量信号值,以备将来在Spark AR软件中用作纹理。
基本上,在材质上使用相机纹理的脚本如下:
const texture = Textures.get('CameraTexture').signal;
const material = Materials.get('defaultMaterial0');
material.setTexture(texture, {textureSlotName: "diffuseTexture"})
我不清楚纹理const是什么类,但是我猜这是ScalarSignal。
这意味着它是一个流,而不是一个值。我将如何快照该值? lastValue
不起作用,尝试使用valueOf()
时,我得到
JavaScript错误:本地代码在调用函数时被调用:函数value()调用信号上的异常。这可能意味着您正在尝试对诸如+,+,-,**等的信号执行某种算术运算,而不是在信号上使用功能,添加,.sub(),等,而是在事件源上获取快照()。信号在回调中的当前值。
subscribeWithSnapshot()
不是函数。
如果有人知道我该怎么做,或者我做不到的具体原因,将不胜感激!
谢谢!
答案 0 :(得分:1)
不能。当前在SparkAr中不允许保存纹理。而且我认为数据类型应该是一个纹理缓冲区(最终...)
编辑:另外,相机纹理信号不是scalarSignal,而是ShaderSignal。 您可以检查以下内容:
Diagnostics.log(Textures.get('CameraTexture').signal);