Spark AR本机UI选择器

时间:2019-11-13 01:29:23

标签: spark-ar-studio

在“本机UI选择器的文档”页面中,它说: “ NativeUI Picker是可以添加到效果中的界面。它允许使用您的效果的人通过选择图标在其中选择其他选项。 例如,用户可以点击不同的图标来更改效果中显示的纹理”。

我已经用NativeUI纹理“切换器”制作了几种效果,并试图实现NativeUI来切换纹理(对象)本身而不是纹理之间。

例如,如果我要在FaceMesh上制作一些纹理,则可以通过点击屏幕来改变,而具有另一种纹理的粒子系统也可以在点击屏幕时进行更改。如何使用NativeUI在这两个之间切换?

我不太喜欢当前的解决方案,因为它不友好。我使用了PatchEditor和FaceFinder,在眉毛抬起时打开/关闭faceMesh和Emitter的可见性。参见下面的屏幕截图:

Spark AR Patch Editor 我真的很感谢任何建议, 谢谢!

1 个答案:

答案 0 :(得分:0)

// Load in modules
const NativeUI = require("NativeUI");
const Textures = require("Textures");
const Patches = require("Patches");

export const Diagnostics = require("Diagnostics");

// Create a number
let userNumber = 0;

const texture0 = Textures.get("number1");
const texture1 = Textures.get("number2");
const texture2 = Textures.get("number3");

const index = 0;
const configuration = {
  selectedIndex: index,
  items: [
    { image_texture: texture0 },
    { image_texture: texture1 },
    { image_texture: texture2 }
  ]
};
const picker = NativeUI.picker;
picker.configure(configuration);
picker.visible = true;

picker.selectedIndex.monitor().subscribe(function(index) {
  userNumber = index.newValue;
  // Send the number to the Patch Editor under the name 'userNumber'
  Patches.setScalarValue("userNumber", userNumber);
  // Debugging
  Diagnostics.log("user selection = " + index.newValue);
});

使用NativeUI选择器。上面的代码会将索引值作为userNumber(scalar)输出到补丁编辑器。

示例: 如果用户选择数字1,则userNumber的输出将为0, 如果用户选择数字2,则userNumber的输出将为1, 如果用户选择数字3,则userNumber的输出将为2, 等

您可以将userNumber用作开关,使其完全相等 NativeUI Picker as Switch Picture